Thread.sleep()不释放锁吗?

learsea learsea 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
class DualSynch{
public void f(int flag) {
synchronized (this) {
System.out.println("f()" + flag);
}
}
}
public class Test {
public static void main(String[] args) {
final DualSynch ds = new DualSynch();
new Thread() {
public void run() {
int i = 0;
while(i ++ <2){
ds.f(1);
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
new Thread(){
public void run() {
ds.f(2);
}
}.start();
}
}
既然sleep()不释放锁,为什么这个程序运行结果会出现f(1) f(2) f(1)呢?在线程一sleep时,线程二得到了锁并且调用了f()方法
...全文

相关推荐

sleep () 和 wait () 有什么区别?

sleep () 用于线程休眠,不释放锁,适用于模拟等待或控制线程执行速度。wait () 用于线程间的协调和通信,会释放锁,只能在同步块或同步方法中使用。

冷风扇666

正交拉丁超立方(OLHC)分组与实验设计(DOE)评估的优化Python实现.rar

正交拉丁超立方(OLHC)分组与实验设计(DOE)评估的优化Python实现.rar

天天Matlab科研工作室

Java微服务如何拆解审计日志查询服务

标题:Java微服务如何拆解审计日志查询服务 内容概要:围绕缓存策略、任务调度、回压控制和审计追踪,拆解Java微服务如何拆解审计日志查询服务的实现细节。 xdronline.com xdrea.com 9g.xinmei6.com xinghaohuanbao.com m.xiker66.com

2601_97068614

港股十档行情tick数据涵盖逐笔成交与委托,记录每笔买卖价格、成交量及挂单明细 逐笔数据包含成交时间、价格、股数、成交方向,委托数据展示买一至买十、卖一至卖十的价格与数量

港股十档行情tick数据涵盖逐笔成交与委托,记录每笔买卖价格、成交量及挂单明细。逐笔数据包含成交时间、价格、股数、成交方向,委托数据展示买一至买十、卖一至卖十的价格与数量。分钟数据汇总每分钟开盘价、最高价、最低价、收盘价、成交量及成交额。历史行情覆盖近十五年,字段清晰完整,便于回溯分析。 数据源:CMES金融数据库

2401_89140926

MO-372A_PQFP-F6_I1p27-R3p8x4p48Z1p1-N5p5C1p24.stp

MO-372A_PQFP-F6_I1p27-R3p8x4p48Z1p1-N5p5C1p24.stp

std86021
评论 12
收藏 已收藏
分享
返回顶部
learsea
Java SE 62,620 成员 307,251 内容