zoukankan      html  css  js  c++  java
  • 多线程05:初识并发问题

    发现问题,多个线程操作同一个资源的情况下,线程不安全,数据紊乱
     1 package com.thread.demo01;
     2 
     3 //多个线程同时操作同一个对象
     4 //买火车票的例子
     5 
     6 //发现问题,多个线程操作同一个资源的情况下,线程不安全,数据紊乱
     7 public class TestThread04 implements Runnable {
     8 
     9     //票数
    10     private int ticketNums = 10;
    11 
    12     @Override
    13     public void run() {
    14         while (true) {
    15             if (ticketNums <= 0) {
    16                 break;
    17             }
    18             //模拟延时
    19             try {
    20                 Thread.sleep(200);
    21             } catch (InterruptedException e) {
    22                 e.printStackTrace();
    23             }
    24 
    25             System.out.println(Thread.currentThread().getName() + "-->拿到了" + ticketNums-- + "票");
    26         }
    27     }
    28 
    29     public static void main(String[] args) {
    30         TestThread04 ticket = new TestThread04();
    31 
    32         new Thread(ticket, "小红").start();
    33         new Thread(ticket, "老师").start();
    34         new Thread(ticket, "黄牛").start();
    35     }
    36 }
    37 
    38 结果:
    39 黄牛-->拿到了9票
    40 小红-->拿到了10票
    41 老师-->拿到了9票
    42 小红-->拿到了8票
    43 黄牛-->拿到了7票
    44 老师-->拿到了6票
    45 黄牛-->拿到了5票
    46 小红-->拿到了4票
    47 老师-->拿到了4票
    48 黄牛-->拿到了3票
    49 老师-->拿到了1票
    50 小红-->拿到了2票
  • 相关阅读:
    二叉树中和为某一值的路径
    二叉搜索树的后序遍历序列(important!)
    从上往下打印二叉树
    最小的k个数(important!)
    扑克牌顺子
    栈的压入、弹出序列(important!)
    和为s的连续正数序列(important!)
    数组中只出现一次的数字
    fgets()函数以及fputs()函数
    C语言中的指针
  • 原文地址:https://www.cnblogs.com/duanfu/p/12260462.html
Copyright © 2011-2022 走看看