博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
synchronized
阅读量:7046 次
发布时间:2019-06-28

本文共 1603 字,大约阅读时间需要 5 分钟。

1 package com.cn; 2  3 class Test{ 4     public static void main(String [] args){ 5         TestThread t = new TestThread(); 6         new Thread(t).start(); 7         try { 8             Thread.sleep(10); 9         } catch (InterruptedException e) {10             e.printStackTrace();11         }12         t.str="method";13         new Thread(t).start();14     }15 }16 17 class TestThread implements Runnable {18     int tickets = 100;19     String str = new String("");20     public void run() {21         if(str.equals("method")){22             while(true){23                 synchronized (this) {24                     if(tickets>0){25                         try {26                             Thread.sleep(10);27                         } catch (InterruptedException e) {28                             e.printStackTrace();29                         }30                         System.out.println(Thread.currentThread().getName()+" is salling ticket "+tickets--);31                     }32                 }33             }34         }else{35             while(true){36                 sale();37             }38         }39     }40     public synchronized void sale(){41         if(tickets>0){42             try {43                 Thread.sleep(10);44             } catch (InterruptedException e) {45                 e.printStackTrace();46             }47             System.out.println(Thread.currentThread().getName()+" is salling ticket "+tickets--);48         }49     }50 }

sale()方法使用的监视器对象是this,所以要实现同步代码块和sale()方法之间的同步,同步代码块检查的同步对象也应该为this

转载于:https://www.cnblogs.com/lzy1991/p/5111420.html

你可能感兴趣的文章
Mac下安装nginx
查看>>
<转>IOS多线程
查看>>
微信服务号、订阅号和企业号的差别(运营和开发两个角度)
查看>>
AOP之AspectJ
查看>>
SHELL里执行HIVE导出文件处理成CSV文件
查看>>
Python菜鸟之路:Django 路由补充1:FBV和CBV - 补充2:url默认参数
查看>>
【转】生活感悟
查看>>
【leetcode】965. Univalued Binary Tree
查看>>
第十五周学习报告
查看>>
tomcat用户设置
查看>>
LINQ实现行列转换
查看>>
PHP最全笔记(五)(值得收藏,不时翻看一下)
查看>>
拦截器与过滤器的区别
查看>>
移动开发知识点收集
查看>>
黑客教父详解账号泄露全过程:1亿用户已泄露
查看>>
smarty练习: 设置试题及打印试卷
查看>>
替换子节点时 的注意事项
查看>>
groupinfo
查看>>
vmware产品
查看>>
Django2.1.3 smtp 邮件 553报警
查看>>