java 多线程如何同步_Java多线程同步内部如何实现的?

//解决方案-1 设置3把锁, 然后把锁们应用到所有线程中 (涉及到synchronized wait notify等, 嫌麻烦. 略)

解决方案-2 设置3个全局共享的信号标记(信号灯) + 3子线程分别占用标记1 2 3

+ 主线程轮询/等待

(简洁明快 推荐)

//解决方案-2 实现如下:

static boolean t1_done = false;

static boolean t2_done = false;

static boolean t3_done = false;

//t1------run() { ............ ; t1_done = true; }

//t2、 3: 同理,略

main () { .............;

启动t1;

启动t2;

启动t3;

//轮询 or 等待

while ( true )

if ( t1_done && t2_done && t3_done) break;

else

Thread.yield

() ;

// 或 Thread.sleep(xxxx) ----若子线程运行超过100ms以上,应予考虑

//轮询结束,主线程继续工作

} //main END

have fun

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值