java-多线程3
2015-08-23 09:31
218 查看
Lock锁
package test; public class Test01{ public static void main(String[] args) { MyRunnable mr=new MyRunnable(); Thread t1=new Thread(mr,"窗口1"); Thread t2=new Thread(mr,"窗口2"); Thread t3=new Thread(mr,"窗口3"); t1.start(); t2.start(); t3.start(); } }
package test; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /* * 接口:Lock: void lock() ; void unlock() * Lock的实现类:ReentrantLock * */ public class MyRunnable implements Runnable{ private int t=100; private Lock lock=new ReentrantLock(); @Override public void run() { // TODO Auto-generated method stub while(true){ try{ //加锁 lock.lock(); if(t>0){ try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"正在出售第"+(t--)+"张票"); } }finally{ //解锁 lock.unlock(); } } } }
相关文章推荐
- 从零开始学java之IO流 使用字节流好还是字符流好?
- [Java]Leetcode236 Lowest Common Ancestor of a Binary Tree
- Java设计模式(四) 装饰 代理模式
- 第二节:springmvc传值方式
- 【java】itoo项目实战之EJB中的RMI框架如何设计
- Java中的异常处理
- JAVA自定义异常
- struts2 中文乱码解决办法
- Spring Auto proxy creator example
- Spring AOP Interceptor transaction is not working
- Spring AOP Example – Pointcut , Advisor
- JDBC的使用
- struts2 遍历标签iterator 用法小结
- Spring4.0学习(二)采用@Autowired方式自动获取
- eclipse debug source not fount
- SpringMVC原理流程图
- struts 2 用s 标签 输出 list 里的 map
- springboot 开发入门,及问题汇总
- ubuntu14.04lts如何使用PPA安装JDK8
- springboot 开发入门,及问题汇总