线程同步两种方式
来源:互联网 发布:win10极速系统优化 编辑:程序博客网 时间:2024/04/30 03:14
package test.access.foreign;public class Foreign {public static void main(String args[]){MyThread mt=new MyThread();for(int i=0;i<20;i++)//模拟20个售票终端new Thread(mt).start();}/** * 打印结果: */}class MyThread implements Runnable{int tacket=5;@Overridepublic void run() {try {sale();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private synchronized void sale() throws InterruptedException{long time=(long) (Math.random()*5000);System.out.println("线程"+Thread.currentThread().getName()+"休眠"+time+"毫秒");Thread.sleep(time);//模拟网络延时if(tacket>=1){System.out.println("售票:"+tacket--);}else{System.out.println("没票啦");}}}
方式二:
package test.access.foreign;public class Foreign {public static void main(String args[]){MyThread mt=new MyThread();for(int i=0;i<20;i++)//模拟20个售票终端new Thread(mt).start();}/** * 打印结果: */}class MyThread implements Runnable{int tacket=5;@Overridepublic void run() {try {synchronized(this){long time=(long) (Math.random()*5000);System.out.println("线程"+Thread.currentThread().getName()+"休眠"+time+"毫秒");Thread.sleep(time);//模拟网络延时if(tacket>=1){System.out.println("售票:"+tacket--);}else{System.out.println("没票啦");}}} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
0 0
- 线程同步两种方式
- 线程的两种同步方式测试
- Java中线程同步的两种方式
- 线程安全 线程同步两种方法
- 线程同步三种方式
- 线程同步四种方式
- 三种线程同步方式
- 线程:几种同步方式
- 5种线程同步方式
- 线程同步几种方式
- 线程同步(5种同步方式)
- 线程同步(9种同步方式)
- 线程实现两种方式
- 线程两种方式实现
- 多线程创建的两种方式和线程同步问题实例
- 04.多线程--06.【同步方式在线程两种创建方式中的可行性】【同步代码块和同步函数的关系】【多线程程序设计思路总结】
- 线程-实现线程的两种方式
- 两种创建线程的方式/线程的生命周期及各自使用同步锁时的区别
- c/c++: 多线程编程基础讲解(一)
- git
- 浅析HTTP中POST和GET区别并用Python模拟其响应和请求
- Maven学习 (三) Elipse中发布一个Maven项目到Tomcat
- OBJ 文件格式
- 线程同步两种方式
- Maven学习 (四) 搭建多模块企业级项目
- linux和性能相关的命令及系统性能诊断
- Ubuntu修改host文件
- Mysql中float列的等值查询
- 利用ios的hook机制实现adobe air ios ane下appdelegate的动态替换
- CoCreateInstance具体内部实现
- PHP开发环境完整版详解
- 使用MyBatis Generator生成DAO