Lock的tryLock()方法
来源:互联网 发布:手机淘宝千牛怎么用 编辑:程序博客网 时间:2024/05/01 12:40
概述
tryLock()方法是有返回值的,它表示用来尝试获取锁,如果获取成功,则返回true,如果获取失败(即锁已被其他线程获取),则返回false,这个方法无论如何都会立即返回。在拿不到锁时不会一直在那等待。
代码
@Testpublic void testTryLock() {Lock lock = new ReentrantLock();new Thread() {@Overridepublic void run() {String tName = Thread.currentThread().getName();if (lock.tryLock()) {System.out.println(tName + "获取到锁!");} else {System.out.println(tName + "获取不到锁!");return;}try {for (int i = 0; i < 5; i++) {System.out.println(tName + ":" + i);}Thread.sleep(5000);} catch (Exception e) {System.out.println(tName + "出错了!!!");} finally {System.out.println(tName + "释放锁!!");lock.unlock();}}}.start();new Thread() {@Overridepublic void run() {String tName = Thread.currentThread().getName();if (lock.tryLock()) {System.out.println(tName + "获取到锁!");} else {System.out.println(tName + "获取不到锁!");return;}try {for (int i = 0; i < 5; i++) {System.out.println(tName + ":" + i);}} catch (Exception e) {System.out.println(tName + "出错了!!!");} finally {System.out.println(tName + "释放锁!!");lock.unlock();}}}.start();}
运行结果
Thread-0获取到锁!
Thread-0:0
Thread-0:1
Thread-0:2
Thread-0:3
Thread-0:4
Thread-1获取不到锁!
0 0
- Lock的tryLock()方法
- Lock的tryLock()方法
- java中的Lock和tryLock方法的详解
- Mutex的lock(), tryLock()区别
- Mutex的lock(), tryLock()区别
- Mutex的lock(), unlock(), tryLock()函数介绍
- Mutex的lock(), unlock(), tryLock()函数介绍
- ReentrantLock中lock/trylock/lockInterruptibly方法的区别及源码解析
- java.nio.channels.FileChannel中lock()与tryLock()方法的区别(Android Studio代码环境)
- FileChannel tryLock/lock method
- 互斥量trylock与lock
- lock tryLock lockInterruptibly
- Lock,tryLock,lockInterruptibly区别
- lock tryLock lockinterruptibly 区别
- lock(),tryLock(),lockInterruptibly()区别
- Lock ReentrantLock tryLock condtion 用法
- java并发编程--AbstractQueuedSynchronizer的tryLock()方法分析(六)
- Java中Lock,tryLock,lockInterruptibly 区别
- 小强python(接口+selenium+Appium)全栈自动化测试2月班已经开课,下期招生中
- 线程和进程的异同
- MySQL数据导入Redis小记
- c++将剪贴板内容保存为bmp图
- 算法学习-树转二叉树
- Lock的tryLock()方法
- PINCTRL代码
- git修改提交的注释内容
- 关于Android性能优化的简单总结
- POI读取Excel
- The following signatures couldn't be verified because the public key is not available
- Swift3.0 gcd学习(1)
- edx的管理命令
- IDEA使用(二)