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票
  • 相关阅读:
    python数据分析与展示
    人生苦短,我学python。
    数学
    解决git for windows 和 vim for windows 的 vim 显示中文乱码的问题
    解决win7连接IPsec报错789和809错误
    python安装pandas库
    vim配置文件
    0x03-数据和C
    Ubutun安装问题记录
    Django-rest-framework --- 三大认证
  • 原文地址:https://www.cnblogs.com/duanfu/p/12260462.html
Copyright © 2011-2022 走看看