導航:首頁 > 編程語言 > java停止方法

java停止方法

發布時間:2022-04-12 06:27:26

java線程如何停止

通過調用interrupt方法可以使得處於阻塞狀態的線程拋出一個異常,即interrupt方法可以用來中斷一個正處於阻塞狀態的線程;另外,改方法還會設置線程的中斷狀態(註:isInterrupted()可以用來查詢中斷狀態)。

㈡ java定時器怎麼停止

1、scheleUpdate
加入當前節點後,程序會每幀都會自動執行一次默認的Update函數。(註:一定是Update函數哦,若想調用其他自己命名的函數則使用schele)
看例子,走起。
首先在HelloWord類的頭文件中聲明Update函數:
[cpp] view plain print?
void update(float dt); //注意參數類型
然後在HelloWorld類源文件中實現函數Update:

[cpp] view plain print?
void HelloWorld::update(float dt)
{
CCLOG("");
}
現在我們可以調用了,在需要他不斷執行的地方加入調用的代碼就ok:

[cpp] view plain print?
this->scheleUpdate(); //this是當前節點,如layer,所以可以省略啦。

運行之後你將會看到不斷有被列印出來
2、scheleUpdate
可以沒隔幾秒執行某個自定義的函數,來看代碼:
首先還是在HelloWorld中聲明所要執行的函數:

㈢ java程序通過命令停止

tasklist命令找到該程序的進程,taskkill殺掉該進程。


tomcat的啟動、結束bat都是調用org.apache.catalina.startup.Bootstrap這個類實現的,startup.bat最終會執行Bootstrap.java里的

publicvoidstart()throwsException{
if(catalinaDaemon==null)init();

Methodmethod=catalinaDaemon.getClass().getMethod("start",(Class[])null);
method.invoke(catalinaDaemon,(Object[])null);

}

shutdown.bat最終會執行Bootstrap里的

publicvoidstopServer()throwsException{
Methodmethod=catalinaDaemon.getClass().getMethod("stopServer",(Class[])null);
method.invoke(catalinaDaemon,(Object[])null);

}

你也可以這樣寫一個類來控製程序的啟動、終止,bat就調用對應的方法。

㈣ java線程如何停止

終止線程的三種方法:
1. 使用退出標志,使線程正常退出,也就是當run方法完成後線程終止。
2. 使用stop方法強行終止線程(這個方法不推薦使用,因為stop和suspend、resume一樣,也可能發生不可預料的結果)。
3. 使用interrupt方法中斷線程。

1. 使用退出標志終止線程
當run方法執行完後,線程就會退出。但有時run方法是永遠不會結束的。如在服務端程序中使用線程進行監聽客戶端請求,或是其他的需要循環處理的任務。在這種情況下,一般是將這些任務放在一個循環中,如while循環。如果想讓循環永遠運行下去,可以使用while(true){……}來處理。但要想使while循環在某一特定條件下退出,最直接的方法就是設一個boolean類型的標志,並通過設置這個標志為true或false來控制while循環是否退出。下面給出了一個利用退出標志終止線程的例子。

packagechapter2;

{
publicvolatilebooleanexit=false;
publicvoidrun()
{
while(!exit);
}
publicstaticvoidmain(String[]args)throwsException
{
ThreadFlagthread=newThreadFlag();
thread.start();
sleep(5000);//主線程延遲5秒
thread.exit=true;//終止線程thread
thread.join();
System.out.println("線程退出!");
}
}

在上面代碼中定義了一個退出標志exit,當exit為true時,while循環退出,exit的默認值為false.在定義exit時,使用了一個Java關鍵字volatile,這個關鍵字的目的是使exit同步,也就是說在同一時刻只能由一個線程來修改exit的值,

2. 使用stop方法終止線程
使用stop方法可以強行終止正在運行或掛起的線程。我們可以使用如下的代碼來終止線程:
thread.stop();
雖然使用上面的代碼可以終止線程,但使用stop方法是很危險的,就象突然關閉計算機電源,而不是按正常程序關機一樣,可能會產生不可預料的結果,因此,並不推薦使用stop方法來終止線程。

3. 使用interrupt方法終止線程
使用interrupt方法來終端線程可分為兩種情況:
(1)線程處於阻塞狀態,如使用了sleep方法。
(2)使用while(!isInterrupted()){……}來判斷線程是否被中斷。
在第一種情況下使用interrupt方法,sleep方法將拋出一個InterruptedException例外,而在第二種情況下線程將直接退出。下面的代碼演示了在第一種情況下使用interrupt方法。

packagechapter2;

{
publicvoidrun()
{
try
{
sleep(50000);//延遲50秒
}
catch(InterruptedExceptione)
{
System.out.println(e.getMessage());
}
}
publicstaticvoidmain(String[]args)throwsException
{
Threadthread=newThreadInterrupt();
thread.start();
System.out.println("在50秒之內按任意鍵中斷線程!");
System.in.read();
thread.interrupt();
thread.join();
System.out.println("線程已經退出!");
}
}

上面代碼的運行結果如下:
在50秒之內按任意鍵中斷線程!
sleep interrupted
線程已經退出!
在調用interrupt方法後, sleep方法拋出異常,然後輸出錯誤信息:sleep interrupted.
注意:在Thread類中有兩個方法可以判斷線程是否通過interrupt方法被終止。一個是靜態的方法interrupted(),一個是非靜態的方法isInterrupted(),這兩個方法的區別是interrupted用來判斷當前線是否被中斷,而isInterrupted可以用來判斷其他線程是否被中斷。因此,while (!isInterrupted())也可以換成while (!Thread.interrupted())。

㈤ Java 如何正確停止一個線程

終止線程的三種方法:1. 使用退出標志,使線程正常退出,也就是當run方法完成後線程終止。 2. 使用stop方法強行終止線程(這個方法不推薦使用,因為stop和suspend、resume一樣,也可能發生不可預料的結果)。3. 使用interrupt方法中斷線程。 1. 使用退出標志終止線程 當run方法執行完後,線程就會退出。但有時run方法是永遠不會結束的。如在服務端程序中使用線程進行監聽客戶端請求,或是其他的需要循環處理的任務。在這種情況下,一般是將這些任務放在一個循環中,如while循環。如果想讓循環永遠運行下去,可以使用while(true){……}來處理。但要想使while循環在某一特定條件下退出,最直接的方法就是設一個boolean類型的標志,並通過設置這個標志為true或false來控制while循環是否退出。下面給出了一個利用退出標志終止線程的例子。

package chapter2; public class ThreadFlag extends Thread { public volatile boolean exit = false; public void run() { while (!exit); } public static void main(String[] args) throws Exception { ThreadFlag thread = new ThreadFlag(); thread.start(); sleep(5000); // 主線程延遲5秒 thread.exit = true; // 終止線程thread thread.join(); System.out.println("線程退出!"); } }

在上面代碼中定義了一個退出標志exit,當exit為true時,while循環退出,exit的默認值為false.在定義exit時,使用了一個Java關鍵字volatile,這個關鍵字的目的是使exit同步,也就是說在同一時刻只能由一個線程來修改exit的值, 2. 使用stop方法終止線程 使用stop方法可以強行終止正在運行或掛起的線程。我們可以使用如下的代碼來終止線程: thread.stop(); 雖然使用上面的代碼可以終止線程,但使用stop方法是很危險的,就象突然關閉計算機電源,而不是按正常程序關機一樣,可能會產生不可預料的結果,因此,並不推薦使用stop方法來終止線程。 3. 使用interrupt方法終止線程 使用interrupt方法來終端線程可分為兩種情況: (1)線程處於阻塞狀態,如使用了sleep方法。 (2)使用while(!isInterrupted()){……}來判斷線程是否被中斷。 在第一種情況下使用interrupt方法,sleep方法將拋出一個InterruptedException例外,而在第二種情況下線程將直接退出。下面的代碼演示了在第一種情況下使用interrupt方法。

package chapter2; public class ThreadInterrupt extends Thread { public void run() { try { sleep(50000); // 延遲50秒 } catch (InterruptedException e) { System.out.println(e.getMessage()); } } public static void main(String[] args) throws Exception { Thread thread = new ThreadInterrupt(); thread.start(); System.out.println("在50秒之內按任意鍵中斷線程!"); System.in.read(); thread.interrupt(); thread.join(); System.out.println("線程已經退出!"); } }

上面代碼的運行結果如下: 在50秒之內按任意鍵中斷線程! sleep interrupted 線程已經退出! 在調用interrupt方法後, sleep方法拋出異常,然後輸出錯誤信息:sleep interrupted. 注意:在Thread類中有兩個方法可以判斷線程是否通過interrupt方法被終止。一個是靜態的方法interrupted(),一個是非靜態的方法isInterrupted(),這兩個方法的區別是interrupted用來判斷當前線是否被中斷,而isInterrupted可以用來判斷其他線程是否被中斷。因此,while (!isInterrupted())也可以換成while (!Thread.interrupted())。

㈥ java中終止程序的執行

想直接整個程序的結束用System.exit(0);
如果是在for循環,while或if中嘗試用return ,break等

㈦ 求可用的java線程停止的方法~

不要用stop(),這個方法早就過時,被廢棄了.
你可以在mytread這個類中寫一個改變boolean
a
值的函數:seta(boolean
a
),在需要停止線程的地方,將a的值設置為false.

㈧ java中如何終止當前方法,但不退出系統仍然繼續下個方法計算

java中終止當前方法,但不退出系統仍然繼續下個方法計算,可以在方法的最後加上return語句,實例如下:

publicclassceshi
{
publicstaticvoidmain(String[]args)
{
ceshice=newceshi();
fun();
fun1();
}
publicvoidfun(){//會終止的方法
reurn;
}
publicvoidfun1(){
System.out.println("我是第二個執行的方法");
}
}

㈨ java 如何停止一個死循環

java 停止一個死循環,可以使用break關鍵字,跳出循環,如下代碼:

packagecom.qiu.lin.he;

publicclassCeshi{
publicstaticvoidmain(String[]args){
for(inti=2;i>0;i++){
if(i==80){
System.out.println("死循環退出了");
break;

}
}
}
}

運行結果如下:

㈩ java怎麼強行終止程序

在java程序中,可以使用java.lang.System的exit方法來終止程序的執行,

12345678

public static void main(String[] args) { System.out.println("開始進入程序..."); //do something System.out.println("程序准備退出了!"); System.exit(0); //下面這句話將不會列印出來 System.out.println("程序已經退出了!");}

但是使用exit方法的本質是終止了JVM的運行,如果同時運行了另外一個程序,使用exit方法同樣也會使該程序也終止,要避免此種情況可以使用interrupt()來中斷退出一個獨立運行的過程。對於多線程程序,必須要關閉各個非守護線程。public static void main(String[] args) { System.out.println("開始進入程序..."); //do something new Thread(){ public void run() { while (true) { System.out.println("我是另外的線程..."); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }.start(); //獲取man線程 Thread main = Thread.currentThread(); System.out.println(main.getName()); main.interrupt(); System.out.println("main線程已經退出了,但是不影響其他線程運行!"); }

只有在程序非正常退出時,才使用exit方法退出程序。

閱讀全文

與java停止方法相關的資料

熱點內容
程序員看不懂怎麼辦 瀏覽:271
linux操作系統題 瀏覽:765
單片機無符號數加法 瀏覽:227
應用隱藏加密怎麼關閉 瀏覽:269
汽車空調的壓縮機電線有什麼用 瀏覽:429
電腦加密圖片如何取消加密 瀏覽:340
慧凈電子51單片機視頻 瀏覽:343
javamap賦值 瀏覽:165
什麼app可以玩掌機游戲 瀏覽:46
java簡單聊天室 瀏覽:462
通用汽車編程軟體 瀏覽:432
一級抗震框架梁箍筋加密區規定是多少 瀏覽:974
教你如何把安卓手機變成蘋果 瀏覽:11
app編譯分類 瀏覽:323
怎麼用伺服器的資源包 瀏覽:199
oa軟體手機登陸伺服器地址 瀏覽:289
androidrtp打包 瀏覽:723
信息被加密碼了怎麼辦 瀏覽:420
彈出光碟命令 瀏覽:517
kdj公式源碼分享 瀏覽:355