首页
Java面试
PHP面试
经验笔记
在线工具
首页
在线工具
Java中可重入锁和不可重入锁
可重入锁ReentrantLock
C语言 在线运行
C++ 在线运行
Java 在线运行
PHP 在线运行
Python 在线运行
Python3 在线运行
Nodejs 在线运行
Ruby 在线运行
Perl 在线运行
Go 在线运行
R语言 在线运行
Lua 在线运行
C# 在线运行
结果显示HTML
清空
点击运行
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class ReentrantLockExample extends Thread { public static Integer count=1; private static final Lock lock = new ReentrantLock(); public ReentrantLockExample() { } @Override public void run() { while(true){ if (count>10){ System.out.println(getName() + "退出,count值: "+count); break; } try { lock.lock(); count = count +2; lock.lock(); System.out.println(getName() + ",count值"+count); count = count - 1; } catch (Exception e) { e.printStackTrace(); } finally { lock.unlock(); lock.unlock(); } try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String args[]) throws InterruptedException { ReentrantLockExample task1 = new ReentrantLockExample(); ReentrantLockExample task2 = new ReentrantLockExample(); task1.start(); task2.start(); } }
运行结果
可重入锁ReentrantLock在线测试,这是一个简单方便的Java在线运行工具,支持在线编译、在线调试和在线结果的实时反馈。