方法join(long)与方法sleep(long)的区别
来源:互联网 发布:mac桌面壁纸软件 编辑:程序博客网 时间:2024/04/29 02:33
1.wait()方法与notify()方法
wait()方法执行后,锁会被释放,而notify()方法执行后,不释放锁。
2.方法join(long)与方法sleep(long)的区别
方法join(long)的功能是在内部使用wait(long)方法实现的,由于wait(long)方法释放锁,所以join(long)释放锁。
public final synchronized void join(long millis) throws InterruptedException { long base = System.currentTimeMillis(); long now = 0; if (millis < 0) { throw new IllegalArgumentException("timeout value is negative"); } if (millis == 0) { while (isAlive()) { wait(0); } } else { while (isAlive()) { long delay = millis - now; if (delay <= 0) { break; } wait(delay); now = System.currentTimeMillis() - base; } } }
从源码可以看出,当执行wait(long)方法后,当前线程的锁被释放,其他线程便可以调用次线程的同步方法了。而Thread.sleep(long)方法却不释放锁。
1 0
- 方法join(long)与方法sleep(long)的区别
- join(long)与sleep(long)的区别
- 3.2.5join(long)与sleep(long)的区别
- __int64与long long、long的区别
- __int64与long long、long的区别
- java之Thread.sleep(long)与object.wait()/object.wait(long)的区别
- java多线程之sleep(long millis)方法
- sleep(),wait(),yield(),join()方法的区别
- __int64 与long long 的区别
- __int64 与long long 的区别
- __int64 与long long 的区别
- __int64 与long long 的区别
- __int64 与long long 的区别
- __int64 与long long 的区别
- __int64 与long long 的区别
- __int64 与long long 的区别
- __int64 与 long long的区别(acm)
- __int64 与 long long的区别(acm)
- JavaScript type 对比 Objective-C type 转换
- 微信小程序开发之五星评分
- MFC数组类CArray的使用
- java 最小子序列和
- linux内核中等待队列(wait_event,wake_up...)
- 方法join(long)与方法sleep(long)的区别
- [Java]读取文件方法大全
- 怎样用MindManager实现线条渐细效果?
- 基于体积绘制的光线跟踪技术
- [Json]java中List转换成json对象
- 结构体中的malloc 与 free
- LESS学习:LESS的基础语法
- 初级指针探索
- SSD: Single Shot MultiBox Detector