java中使用ReentrantLock实现线程安全
如下代码:
class Window4 implements Runnable { private int ticket=100;
//1、先定义一个变量 private ReentrantLock rlock=new ReentrantLock(true); @Override public void run() { while (true){ try {
//2、加锁 rlock.lock(); if(ticket>0){ try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+":"+ticket); ticket--; }else{ break; } } finally {
//3、锁释放
rlock.unlock();
} } } }
代码中有注释。
作者:沐雪
文章均系作者原创或翻译,如有错误不妥之处,欢迎各位批评指正。本文版权归作者和博客园共有,如需转载恳请注明。
如果您觉得阅读这篇博客让你有所收获,请点击右下方【推荐】
为之网-热爱软件编程 http://www.weizhi.cc/