java实现多线程卖票(重点分析Thread.sleep())
来源:互联网 发布:java项目技术亮点难点 编辑:程序博客网 时间:2024/05/16 19:22
- 这里实现多线程卖票不是重点。重点是分析一下线程休眠后程序运行顺序。
- Thread.sleep()方法讲解请参考“http://blog.csdn.net/singwtwww/article/details/8492201”简单来说就是sleep()多少毫米内不参与cpu在竞争。注意windows平台采用的是抢占式算法。
3.从结果中分析,线程启动后开始执行run方法。由于此处写的是while(flag),所以程序后一直执行,直到flag=false,注意打印aaaaaaaa只出现了一次。每次重复执行都是执行的while里面内容。可以从时间来判断顺序。
package testThread;import java.text.SimpleDateFormat;class money implements Runnable { private static int num=100; boolean flag=true; public void run() { System.out.println("aaaaaaaaaaaaaaaa"); while (flag) { System.out.println("bbbbbbbbbbbbbbb"); synchronized (this) { if (num>0) { try { SimpleDateFormat time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String TimeString = time.format(new java.util.Date()); System.out.println(TimeString); Thread.sleep(5000); num--; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } SimpleDateFormat time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String TimeString = time.format(new java.util.Date()); System.out.println(TimeString); System.out.println(Thread.currentThread().getName()+"郑州到南京还有"+num); }else { //让线程停止 flag=false; System.out.println("没了"); } } } }}public class thread2 { public static void main(String[] args) { money mo=new money(); Thread thread1=new Thread(mo); Thread thread2=new Thread(mo); Thread thread3=new Thread(mo); Thread thread4=new Thread(mo); thread1.start(); thread2.start(); thread3.start(); thread4.start(); }}
aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbaaaaaaaaaaaaaaaabbbbbbbbbbbbbbb2016-09-26 11:37:212016-09-26 11:37:26Thread-0郑州到南京还有99bbbbbbbbbbbbbbb2016-09-26 11:37:262016-09-26 11:37:31Thread-2郑州到南京还有982016-09-26 11:37:31bbbbbbbbbbbbbbb2016-09-26 11:37:36Thread-3郑州到南京还有97bbbbbbbbbbbbbbb2016-09-26 11:37:362016-09-26 11:37:41Thread-1郑州到南京还有96bbbbbbbbbbbbbbb2016-09-26 11:37:412016-09-26 11:37:46Thread-3郑州到南京还有95bbbbbbbbbbbbbbb2016-09-26 11:37:462016-09-26 11:37:51Thread-2郑州到南京还有94bbbbbbbbbbbbbbb2016-09-26 11:37:512016-09-26 11:37:56Thread-0郑州到南京还有93bbbbbbbbbbbbbbb2016-09-26 11:37:562016-09-26 11:38:01Thread-2郑州到南京还有92bbbbbbbbbbbbbbb2016-09-26 11:38:012016-09-26 11:38:06Thread-3郑州到南京还有91bbbbbbbbbbbbbbb2016-09-26 11:38:062016-09-26 11:38:11Thread-1郑州到南京还有90bbbbbbbbbbbbbbb2016-09-26 11:38:112016-09-26 11:38:16Thread-3郑州到南京还有892016-09-26 11:38:16bbbbbbbbbbbbbbb2016-09-26 11:38:21Thread-2郑州到南京还有88bbbbbbbbbbbbbbb2016-09-26 11:38:21
0 0
- java实现多线程卖票(重点分析Thread.sleep())
- JAVA多线程实现模拟卖票
- 实现Runnable 多线程卖票
- 多线程runnable实现卖票
- Java 多线程卖票演示
- Java多线程-卖票
- Java 多线程卖票
- java多线程卖票问题。
- Java 多线程卖票例子
- java多线程—Thread.Join()和Thread.Sleep()
- iOS 卖票中多线程分析;
- Java---12---多线程练习:卖票---实现数据共享
- Java 多线程实现多个窗口同时卖票
- 多线程实现卖票的例子
- java多线程:6、模拟卖票
- Java多线程实例之卖票
- 【Java多线程】之二:Java Thread Sleep Example
- Java中Thread和Runnable方法实现多线程差异性分析
- Android开发之Animations(四)
- 当用javaw.exe不能运行jar文件的时候
- 100天土鸡饲养计划(55)
- Hadoop2.7环境搭建---Java环境变量
- iOS App组件化开发实践
- java实现多线程卖票(重点分析Thread.sleep())
- 好烦,好纠结
- android studio没有org.apache.http.client.HttpClient;等包问题 解决方案
- 跟我学Redis 1.2 Redis开机自启动
- Linux 下GDAL2.0.1 proj4.9.2 geos3.5.0
- HashSet,TreeSet和LinkedHashSet的区别
- JavaWeb-HTTP协议
- C语言一些数据类型
- 二叉树中、后序求先序