JAVA 同步函数以this为锁
来源:互联网 发布:让子弹飞 隐喻 知乎 编辑:程序博客网 时间:2024/05/19 18:00
//仅作为学习笔记
/*同步函数用的是this锁函数需要被对象调用。那么函数都有一个所属对象调用,就是this所以同步函数使用的锁是this通过该程序进行验证使用两个线程来卖票一个线程在同步代码块中一个线程在同步函数中都在执行卖票操作*/class Ticket implementsRunnable{private int tick = 1000;//Object obj = new Object();boolean flag = true;public void run(){if(flag)//第一个进入的线程实行下面代码{while(true){//synchronized(obj)//由于同步函数的是以this对象为锁的 此处如果使用obj对象作为锁//则不能实现同步 输出的数据会出现错误 程序的安全性不能得到保证synchronized(this)//和下面的show函数使用同样的锁 可以保证同步{if(tick>0){try{Thread.sleep(40);}catch(Exception e){}System.out.println(Thread.currentThread().getName() +" .....code..."+ tick--);}}}}//第二个进入的代码实行下面代码elsewhile(true)show();//this.show();}public synchronized void show()//同步函数 以this为锁{if(tick>0){try{Thread.sleep(40);}catch(Exception e){}System.out.println(Thread.currentThread().getName() +" .....show..."+ tick--);}}}class ThisLockDemo{public static void main(String []args){Ticket t = new Ticket();Thread t1 = new Thread(t);Thread t2 = new Thread(t);t1.start();//开启第一个线程 但不一定马上执行t.flag = false;//改变标志try{Thread.sleep(40);}catch(Exception e){}//让主线程睡眠40毫秒 保证第一个线程先开始运行 且标志位改变t2.start();}}
- JAVA 同步函数以this为锁
- 同步函数以this为锁
- 同步函数以this为同步对象
- java-同步函数的锁是this
- java多线程-同步函数的锁是this
- 线程--同步函数锁是this
- 并发编程中同步锁的分类及性质(以Java为例)
- java多线程详解四 验证同步函数的锁是this
- JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this
- 黑马程序员-----同步函数锁,this锁(黑马视频)
- 多线程--同步函数使用的锁是this
- 验证多线程中同步函数锁是this对象
- 多线程(多线程-同步函数的锁是this)
- (48)同步函数用的this锁
- 多线程之同步函数使用的是this锁
- java基础入门-多线程同步浅析-以银行转账为例子
- java基础入门-多线程同步浅析-以银行转账为样例
- java 多线程 同步函数 。同步函数的锁 和 静态同步函数的锁
- 初学试试看cocos2dx的TestCPP框架(7)---AtlasTestScene(LabelTest)
- linux 内核参数
- 猜数字游戏
- codeforce round 170 A. Learning Languages
- 【转】骆家辉对大陆中国人的评价
- JAVA 同步函数以this为锁
- hdu 4308 Saving Princess claire
- ARP协议详解及如何编程实现ARP攻击
- 强大的chrome-很有用的 Chrome 浏览器命令
- 输入二进制数字串,转换成十进制正整数
- C#索引器
- LoadRunner之Block
- strcpy函数和strlen函数
- 2012互联网趋势报告详览:互联网女皇眼中的移动互联网