> 文档中心 > 线程九—— 模拟延时 放大问题的发生性

线程九—— 模拟延时 放大问题的发生性

注意: 这里模拟了三个线程同时抢票的问题,很明显这种线程是不安全的,因为有为会抢到0和-1的票,所以我们就需要解决问题的发生性,请关注下章节的内容。。。。

package com.yyf.ThreadSleep;// 模拟延时  :  放大问题的发生性public class TestSleep  implements Runnable{ int ticketNum=10; @Override public void run() {     while (true){  if (ticketNum<=0){      break;  }  try {      Thread.sleep (200);  } catch (InterruptedException e) {      e.printStackTrace ();  }  System.out.println (Thread.currentThread ().getName ()+"拿到了第"+ticketNum--+"张票");     } } public static void main(String[] args) {     com.yyf.Thread.TestTread5 t = new com.yyf.Thread.TestTread5 ();     new Thread (t,"小明").start ();     new Thread (t,"小张").start ();     new Thread (t,"黄牛").start (); }    }

运行结果:
小明拿到了第10张票
黄牛拿到了第8张票
小张拿到了第9张票
小明拿到了第6张票
黄牛拿到了第5张票
小张拿到了第7张票
小张拿到了第4张票
小明拿到了第2张票
黄牛拿到了第3张票
小明拿到了第0张票
小张拿到了第1张票
黄牛拿到了第-1张票

进程已结束,退出代码为 0
 

艺术字体转换器