方案操作如下:
十年的景谷網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整景谷建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“景谷網(wǎng)站設(shè)計”,“景谷網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
(1)讓程序在一個單獨的線程中運行,然后在終止時,可以用線程的終止方法來結(jié)束它。
(2)退出Java程序時盡量不要使用java.lang.System的exit方法。Exit?方法可以終止JVM,從而終止程序,但如果同時運行了另一個Java程序,使用exit方法就會讓該程序也關(guān)閉,這顯然不是希望看到的情況!?。?!
要退出Java程序,可以使用destory()退出一個獨立運行的過程。對于多線程程序,必須要關(guān)閉各個非守護(hù)線程。
只有在程序非正常退出時,才使用exit方法退出程序
首先你使用的是判斷代碼快,在代碼快的編寫上就錯誤了。不論是java和是C#,進(jìn)行異常處理需要使用的外側(cè)代碼只有try{}catch{}finally try塊中的語句就是可能要發(fā)生異常的代碼,catch中的語句就是如果try中的語句發(fā)生了異常那么就執(zhí)行catch中的代碼。finally是一個可選的,無論是否發(fā)生異常都要進(jìn)行執(zhí)行的代碼放在finally中。
你可以在要停止的部分這樣寫
if(true){
return?;//或者其他的操作,這樣就會退出當(dāng)前的方法,不執(zhí)行后面的語句而且不退出程序
}
如果在一個循環(huán)里,想退出這個循環(huán)請用break;
如果在一個method中,想不執(zhí)行下面的代碼直接退出這個method請用return;
如果你想要程序直接中斷退出,不執(zhí)行后面的任何代碼,請用System.exit(0);
終止線程的三種方法:1. 使用退出標(biāo)志,使線程正常退出,也就是當(dāng)run方法完成后線程終止。 2. 使用stop方法強(qiáng)行終止線程(這個方法不推薦使用,因為stop和suspend、resume一樣,也可能發(fā)生不可預(yù)料的結(jié)果)。3. 使用interrupt方法中斷線程。 1. 使用退出標(biāo)志終止線程 當(dāng)run方法執(zhí)行完后,線程就會退出。但有時run方法是永遠(yuǎn)不會結(jié)束的。如在服務(wù)端程序中使用線程進(jìn)行監(jiān)聽客戶端請求,或是其他的需要循環(huán)處理的任務(wù)。在這種情況下,一般是將這些任務(wù)放在一個循環(huán)中,如while循環(huán)。如果想讓循環(huán)永遠(yuǎn)運行下去,可以使用while(true){……}來處理。但要想使while循環(huán)在某一特定條件下退出,最直接的方法就是設(shè)一個boolean類型的標(biāo)志,并通過設(shè)置這個標(biāo)志為true或false來控制while循環(huán)是否退出。下面給出了一個利用退出標(biāo)志終止線程的例子。
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("線程退出!"); } }
在上面代碼中定義了一個退出標(biāo)志exit,當(dāng)exit為true時,while循環(huán)退出,exit的默認(rèn)值為false.在定義exit時,使用了一個Java關(guān)鍵字volatile,這個關(guān)鍵字的目的是使exit同步,也就是說在同一時刻只能由一個線程來修改exit的值, 2. 使用stop方法終止線程 使用stop方法可以強(qiáng)行終止正在運行或掛起的線程。我們可以使用如下的代碼來終止線程: thread.stop(); 雖然使用上面的代碼可以終止線程,但使用stop方法是很危險的,就象突然關(guān)閉計算機(jī)電源,而不是按正常程序關(guān)機(jī)一樣,可能會產(chǎn)生不可預(yù)料的結(jié)果,因此,并不推薦使用stop方法來終止線程。 3. 使用interrupt方法終止線程 使用interrupt方法來終端線程可分為兩種情況: (1)線程處于阻塞狀態(tài),如使用了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秒之內(nèi)按任意鍵中斷線程!"); System.in.read(); thread.interrupt(); thread.join(); System.out.println("線程已經(jīng)退出!"); } }
上面代碼的運行結(jié)果如下: 在50秒之內(nèi)按任意鍵中斷線程! sleep interrupted 線程已經(jīng)退出! 在調(diào)用interrupt方法后, sleep方法拋出異常,然后輸出錯誤信息:sleep interrupted. 注意:在Thread類中有兩個方法可以判斷線程是否通過interrupt方法被終止。一個是靜態(tài)的方法interrupted(),一個是非靜態(tài)的方法isInterrupted(),這兩個方法的區(qū)別是interrupted用來判斷當(dāng)前線是否被中斷,而isInterrupted可以用來判斷其他線程是否被中斷。因此,while (!isInterrupted())也可以換成while (!Thread.interrupted())。
1.
public class TestShutDownHook {
2.
public TestShutDownHook() {
3.
doShutDownWork();
4.
}
5.
private void doShutDownWork() {
6.
Runtime run=Runtime.getRuntime();//當(dāng)前 Java 應(yīng)用程序相關(guān)的運行時對象。
7.
run.addShutdownHook(new Thread(){ //注冊新的虛擬機(jī)來關(guān)閉鉤子
8.
@Override
9.
public void run() {
10.
//程序結(jié)束時進(jìn)行的操作
11.
System.out.println("程序結(jié)束調(diào)用");
12.
}
13.
});
14.
}
15.
public static void main(String[] args) {
16.
new TestShutDownHook();
17.
for (int i = 0; i 1000; i++) { // 在這里增添您需要處理代碼 }
18.
System.out.println(i);
19.
}
20.
}
21.
}
網(wǎng)站題目:java停止后面的代碼,java停止程序代碼
轉(zhuǎn)載注明:http://jinyejixie.com/article32/dssogpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、定制網(wǎng)站、電子商務(wù)、網(wǎng)站營銷、微信公眾號、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)