黑马程序员技术交流社区
标题:
java培训之getClass方法获取函数
[打印本页]
作者:
zzj123
时间:
2017-6-13 14:08
标题:
java培训之getClass方法获取函数
getClass方法获取函数
静态的同步函数使用的锁是该函数所属字节码文件对象,可以用getClass方法获取,也可以用当前类名.class表示。
示例:
1.class Ticket implements Runnable{
2. private static int num = 100;
3. Object obj = new Object();
4. boolean flag = true;
5.
6. public void run(){
7. if(flag ){
8. while(true ){
9. synchronized(Ticket.class){//this.getClass()
10. if(num > 0){
11. try{
12. Thread. sleep(10);
13. } catch(InterruptedException e){
14. e.printStackTrace();
15. }
16. System.out.println(Thread.currentThread().getName() + "...obj..." + num--);
17. }
18. }
19. }
20. } else
21. while(true )
22. show();
23. }
24.
25. public static synchronized void show(){
26. if(num > 0){
27. try{
28. Thread. sleep(10);
29. } catch(InterruptedException e){
30. e.printStackTrace();
31. }
32. System.out.println(Thread.currentThread().getName() + "...function..." + num--);
33. }
34. }
35.}
36.
37.class SynFunctionLockDemo{
38. public static void main(String[] args){
39. Ticket t = new Ticket();
40. Thread t1 = new Thread(t);
41. Thread t2 = new Thread(t);
42.
43. t1.start();
44. try{
45. Thread. sleep(10);
46. } catch(InterruptedException e){
47. e.printStackTrace();
48. }
49. t. flag = false ;
50. t2.start();
51. }
52.}
53.
复制代码
运行结果:
运行结果.png
(127.5 KB, 下载次数: 25)
下载附件
2017-6-13 14:07 上传
运行结果2.png
(84.72 KB, 下载次数: 34)
下载附件
2017-6-13 14:07 上传
……
作者:
烽火狼烟
时间:
2017-6-13 22:38
来抢个沙发哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2