线程学习的笔记
学习线程
1.interrupt()
?
Thread t1 = new Thread(new somerunable());
?
class?somerunable implements runnable()
{
public void run()
{
Thread.sleep(10000);
system.out.println("over!");
}
?
}
?
?
?
t1.start(); //由于?Thread.sleep(10000);
//t1 是阻塞状态,如果要停止sleep 用t1.interrupt(); ?但是会弹出一个 异常 ?(interrupt 的异常)
?
?
?
?
?
2.join()
?
?
Thread t1 = new Thread(new somerunable());
?
main()
{
int n = 10;
while(n>0)
{
n--;
system.out.println(" MAIN"+n);
Thread.sleep(1000);
if(n==5)
{
t1.join();
t1.start();
}
}
?
}
?
?
效果是 :
MAIN9 MAIN8 MAIN7 MAIN6?MAIN5?(这里会等待到把t1的任务执行完毕,效果:等待10秒,然后由t1写出 over!) over! MAIN4 MAIN3 MAIN2 MAIN1 MAIN0
?
?
?
?
3.setDaemon()
?
t1.setDaemon(true);
?
那么t1会随着主调用者结束而结束
(一般情况下默认是false,如果调用者线程都结束了,但是t1会依然存活……)
?
?
?