java 守护线程 run_java守护线程(后台线程)
/*
1.讓各個(gè)對(duì)象或類相互靈活交流
2.兩個(gè)線程都凍結(jié)了,就不能喚醒了,因?yàn)楦鶕?jù)代碼要一個(gè)線程活著才能執(zhí)行喚醒操作,就像玩木游戲
3.中斷狀態(tài)就是凍結(jié)狀態(tài)
4.當(dāng)主線程退出的時(shí)候,里面的兩個(gè)線程都處于凍結(jié)狀態(tài),這樣就卡住了
5.try catch?? 有異常,catch就自動(dòng)幫忙處理,程序繼續(xù)運(yùn)行
6.讓wait 中斷? 就會(huì)發(fā)生異常,就會(huì)被處理
*/
/*
stop方法已經(jīng)過(guò)時(shí)。
如何停止線程?
只有一種,run方法結(jié)束。
開啟多線程運(yùn)行,運(yùn)行代碼通常是循環(huán)結(jié)構(gòu)。
只要控制住循環(huán),就可以讓run方法結(jié)束,也就是線程結(jié)束。
特殊情況:
當(dāng)線程處于了凍結(jié)狀態(tài)。
就不會(huì)讀取到標(biāo)記。那么線程就不會(huì)結(jié)束。
當(dāng)沒(méi)有指定的方式讓凍結(jié)的線程恢復(fù)到運(yùn)行狀態(tài)是,這時(shí)需要對(duì)凍結(jié)進(jìn)行清除。
強(qiáng)制讓線程恢復(fù)到運(yùn)行狀態(tài)中來(lái)。這樣就可以操作標(biāo)記讓線程結(jié)束。
Thread類提供該方法 interrupt();
*/
class StopThread implements Runnable
{
private boolean flag =true;
public? void run()
{
while(flag)
{
System.out.println(Thread.currentThread().getName()+"....run");
}
}
public void changeFlag()
{
flag = false;
}
}
class? StopThreadDemo
{
public static void main(String[] args)
{
StopThread st = new StopThread();
Thread t1 = new Thread(st);
Thread t2 = new Thread(st);
t1.setDaemon(true);??????????????? /*守護(hù)線程,也叫后臺(tái)線程,主線程一掛,后臺(tái)線程也跟著掛*/
t2.setDaemon(true);
t1.start();
t2.start();
int num = 0;
while(true)
{
if(num++ == 60)
{
//st.changeFlag();
//t1.interrupt();
//t2.interrupt();
break;
}
System.out.println(Thread.currentThread().getName()+"......."+num);
}
System.out.println("over");
}
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java 守护线程 run_java守护线程(后台线程)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库常见笔试面试题及答案
- 下一篇: 计算机专业有必要考软考吗,软考初级程序员