//解决方案-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