Java多线程编程-同步代码块
2015-08-23 22:08
357 查看
同步代码块:
1.共享数据
2.同步监视器
在实现的方式中,考虑同步的话,可以使用this来充当锁,但是在继承的方式中慎用this,用一个静态的对象即可。
1.共享数据
2.同步监视器
在实现的方式中,考虑同步的话,可以使用this来充当锁,但是在继承的方式中慎用this,用一个静态的对象即可。
public class Window2 implements Runnable{ int tickets = 100; Object obj = new Object(); public void run(){ while(true){ synchronized(obj){ //同步监视器 if(ticket > 0){ try{ Thread.currentThread().sleep(10); }catch(InterruptedException e){ e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + "售票,票号为" + ticket-- ); } } } } } public class TestWindow{ public static void main(String[] args){ Window2 w = new Window2(); Thread t1 = new Thread(w); Thread t2 = new Thread(w); Thread t3 = new Thread(w); t1.setName("窗口1"); t2.setName("窗口2"); t3.setName("窗口3"); t1.start(); t2.start(); t3.start(); } }
相关文章推荐
- JavaSE复习日记 : 实例化对象/构造方法和this关键字
- mvn学习
- 用 ObjectMapper将JSON字符串转换为java对象时,java对象一定要有无参构造函数
- cglib动态代理和jdk的动态代理
- Spring JdbcTemplate Querying examples
- synchronized 和java.util.concurrent.locks.Lock 的异同
- Spring的简介
- Java技术资料
- java基础和面向对象
- 文章标题
- 正则表达式笔记(第二弹:JAVA中正则表达式的应用)
- Java编程语言概述
- java多线程同步及最大线程数目
- Java Collection详解,Java中的集合框架Collection上
- eclipse的包的加减号展开方式
- java-查找字符串
- JavaSE复习日记 : 递归函数
- ictclas分词系统的使用,java调用,附带连接mysql进行读写。
- Java泛型与继承的关系
- spring事务管理几种方式(转)