[线程]——线程同步与锁定1_synchronized
来源:互联网 发布:大学生支教后收获数据 编辑:程序博客网 时间:2024/05/22 23:03
public class SynDemo01 {public static void main(String[] args) {//真实角色WebTicket web=new WebTicket();//代理Thread Tom=new Thread(web, "张三");Thread Jess=new Thread(web, "李四");Thread Chois=new Thread(web, "王二");//启动线程Tom.start();Jess.start();Chois.start();}}//线程安全的类class WebTicket implements Runnable{private int num=15;private boolean flag=true;@Overridepublic void run() {while(flag){test3();}}//线程不安全,锁定资源不正确public void test5(){synchronized((Integer)num){//同步块if (num<=0) {flag=false;//跳出循环return;}try {Thread.sleep(500);//模拟延时} catch (Exception e) {// TODO: handle exception}System.out.println(Thread.currentThread().getName()+"抢到了--》"+num--);}}//锁定范围不正确public void test4(){synchronized(this){//同步块if (num<=0) {flag=false;//跳出循环return;}}try {Thread.sleep(500);//模拟延时} catch (Exception e) {// TODO: handle exception}System.out.println(Thread.currentThread().getName()+"抢到了--》"+num--);}//线程安全,锁定正确public void test3(){synchronized(this){//同步块if (num<=0) {flag=false;//跳出循环return;}try {Thread.sleep(500);//模拟延时} catch (Exception e) {// TODO: handle exception}System.out.println(Thread.currentThread().getName()+"抢到了--》"+num--);}}//线程安全,锁定正确public synchronized void test2(){if (num<=0) {flag=false;//跳出循环return;}try {Thread.sleep(500);//模拟延时} catch (Exception e) {// TODO: handle exception}System.out.println(Thread.currentThread().getName()+"抢到了--》"+num--);}//线程不安全public void test1(){if (num<=0) {flag=false;//跳出循环}try {Thread.sleep(500);} catch (Exception e) {// TODO: handle exception}System.out.println(Thread.currentThread().getName()+"抢到了--》"+num--);}}
0 0
- [线程]——线程同步与锁定1_synchronized
- [线程]——线程同步与锁定2_synchronized
- 线程的同步与锁定
- 3、线程安全_synchronized
- 线程的同步与锁定-synchronized初解
- java线程技术5_synchronized
- Java线程的同步与锁-java同步和锁定
- java学习初探十八之线程的线程同步_锁机制_synchronized
- 线程同步 资源锁定(一)
- 线程同步与锁定_synchronized_单例模式_doubleCheckingJAVA178-179
- 线程同步---释放同步监视器的锁定
- 线程、同步与锁——Mutex
- 线程——同步与死锁
- 线程同步 资源锁定(二)Event
- 线程同步 资源锁定(三)Event_CoundownEvent
- 线程同步 资源锁定(四)Barrier类
- 线程同步之锁定临界区
- synchronized 线程同步-类级别锁定
- JAVA Web项目中用OpenOffice+Swftools+Flexpaper实现在线预览,txt文件出现乱码!
- 剑指offer-面试题38:数字在排序数组中出现的次数
- Java violate变量
- android通过命令行启动app-
- 字节,字符 编码
- [线程]——线程同步与锁定1_synchronized
- Linux 打包&解压
- 居中 window.open 与 window.showModalDialog
- Python爬虫学习系列教程
- 【Java学习-J.160411.0.7】笔记6-Java语言特点及数据类型
- Objective-C 和 Core Foundation 对象相互转换的内存管理总结
- ios: 画虚线
- cURL 和 Wget 的优缺点各是什么
- android测试指南