Java如何实现多线程同步?
发布网友
发布时间:2022-04-30 23:54
我来回答
共1个回答
热心网友
时间:2022-06-20 20:52
//解决方案-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