導航:首頁 > 編程語言 > javashutdown

javashutdown

發布時間:2023-01-07 11:40:56

java線程池shutdown和shutdownNow的區別

如圖,API 中有解釋,shutdown 允許之前已經提交但未執行或未完成的任務繼續完成它,而 shutdownNow 阻止已經提交(但尚未運行的)的任務運行並且嘗試停止正在運行的任務。


一句話,shutdown 優雅而不究既往,而shutdownNow 就像停電一般消滅所有既成事實。


⑵ JAVA語句怎麼實現讓電腦定時開機和定時關機

要實現電腦的定時開機功能,首先應確定電腦使用的電源是ATX電源,而且主板支持時鍾喚醒功能,而且操作系統是Windows 98或以上版本的操作系統,然後在開機時進入BIOS設置,選擇「Power Management Setup」項後,將「Resume By Alarm」項設為打開狀態,即設置為「Enabled」。然後在時間設定中的「Data」項中選0,在「Time」中設定定時開機的時間,設置好後按【F10】鍵保存退出,即可實現電腦定時開機功能。需注意的是不要將電腦的電源插頭撥了。
定時關機:首先在「開始」菜單點擊「運行」,輸入「at xx:xx shoutdown -s」 可以實現定時關機,xx:xx指的是具體關機時間。還可以輸入「shoutdown.exe -s -t xxxx」。xxxx指的是欲多久後關機的秒數。如果運行程序後想取消,則輸入「shutdown -a」即可(注意以上輸入時不包括引號)。本人在上網的時候運用了此招,就再也沒發生上網失控的現象了。 如果要在Windows 2000下運行的話,只需將Windows XP c:\windows\system32目錄下的「shutdown.exe」文件拷貝到Windows 2000下的c:\winnt\system32目錄下即可。

⑶ 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怎麼關閉創造

執行shutdown就可以關閉。Java語言是一種計算機語言,尤用於創建網站Java是一門面向對象的編程語言。根據Java官網資料顯示,java執行shutdown就可以關閉。吸收了優點,還摒棄了概念,給人們的使用帶來便捷,更好的服務人們。

⑸ Java如何判斷線程池中所有任務執行完畢

Java 如何判斷線程池所有任務是否執行完
shutdown
void shutdown()
啟動一次順序關閉,執行以前提交的任務,但不接受新任務。如果已經關閉,則調用沒有其他作用。
拋出:
SecurityException - 如果安全管理器存在並且關閉,此 ExecutorService 可能操作某些不允許調用者修改的線程(因為它沒有保持RuntimePermission("modifyThread")),或者安全管理器的 checkAccess 方法拒絕訪問。
isTerminated
boolean isTerminated()
如果關閉後所有任務都已完成,則返回 true。注意,除非首先調用 shutdown 或 shutdownNow,否則 isTerminated 永不為 true。
返回:
如果關閉後所有任務都已完成,則返回 true
/**
[java] view plain
* 採用線程池開啟多個子線程,主線程等待所有的子線程執行完畢
*/
public static void moreThread() {
try {
int threadNum = 0;
for (int i = 0; i < 10; i++) {
threadNum++;

final int currentThreadNum = threadNum;
exe.execute(new Runnable() {

@Override
public void run() {
try {
System.out.println("子線程[" + currentThreadNum + "]開啟");
Thread.sleep(1000*10);
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
System.out.println("子線程[" + currentThreadNum + "]結束");
}
}
});
}

System.out.println("已經開啟所有的子線程");
exe.shutdown();
System.out.println("shutdown():啟動一次順序關閉,執行以前提交的任務,但不接受新任務。");
while(true){
if(exe.isTerminated()){
System.out.println("所有的子線程都結束了!");
break;
}
Thread.sleep(1000);
}

} catch (InterruptedException e) {
e.printStackTrace();
}finally{
System.out.println("主線程結束");
}
}
[java] view plain
子線程[1]開啟
子線程[6]開啟
子線程[2]開啟
子線程[5]開啟
子線程[9]開啟
已經開啟所有的子線程
子線程[3]開啟
子線程[7]開啟
子線程[10]開啟
shutdown():啟動一次順序關閉,執行以前提交的任務,但不接受新任務。
子線程[4]開啟
子線程[8]開啟
子線程[6]結束
子線程[3]結束
子線程[7]結束
子線程[2]結束
子線程[1]結束
子線程[5]結束
子線程[9]結束
子線程[4]結束
子線程[10]結束
子線程[8]結束
所有的子線程都結束了!
主線程結束

⑹ Java里ExecutorService里shutdown()是什麼意思

shutdown,執行後不再接收新任務,如果裡面有任務,就執行完

shutdownNow,執行後不再接受新任務,如果有等待任務,移出隊列;有正在執行的,嘗試停止之

==========================
通常shutdown之後調用awaitTermination,作用是:後者會阻塞當前線程,等待剩餘任務執行完,然後繼續往下執行。如果不適用await,那麼shutdown之後,很可能導致剩餘任務得不到執行(整個程序退出),或是執行出現異常(某些資源被釋放之類)。

==========================
例子,網上來的,懶得動手寫:
================
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

/*
* Callable 和 Future介面
* Callable是類似於Runnable的介面,實現Callable介面的類和實現Runnable的類都是可被其它線程執行的任務。
* Callable和Runnable有幾點不同:
* (1)Callable規定的方法是call(),而Runnable規定的方法是run().
* (2)Callable的任務執行後可返回值(任意類型),而Runnable的任務是不能返回值的。
* (3)call()方法可拋出異常,而run()方法是不能拋出異常的。
* (4)運行Callable任務可拿到一個Future對象,
* Future 表示非同步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,並檢索計算的結果。
* 通過Future對象可了解任務執行情況,可取消任務的執行,還可獲取任務執行的結果。
*/
public class CallableAndFuture {

/** *//**
* 自定義一個任務類,實現Callable介面
*/
public static class MyCallableClass implements Callable{
// 標志位
private int flag = 0;
public MyCallableClass(int flag){
this.flag = flag;
}
public String call() throws Exception{
if (this.flag == 0){
// 如果flag的值為0,則立即返回
return "flag = 0";
}
if (this.flag == 1){
// 如果flag的值為1,做一個無限循環
try {
while (true) {
System.out.println("looping.");
Thread.sleep(2000);
}
} catch (InterruptedException e) {
System.out.println("Interrupted");
}
return "false";
} else {
// falg不為0或者1,則拋出異常
throw new Exception("Bad flag value!");
}
}
}

public static void main(String[] args) {
// 定義3個Callable類型的任務
MyCallableClass task1 = new MyCallableClass(0);
MyCallableClass task2 = new MyCallableClass(1);
MyCallableClass task3 = new MyCallableClass(2);

// 創建一個執行任務的服務
ExecutorService es = Executors.newFixedThreadPool(3);
try {
// 提交並執行任務,任務啟動時返回了一個 Future對象,
// 如果想得到任務執行的結果或者是異常可對這個Future對象進行操作
Future future1 = es.submit(task1);
// 獲得第一個任務的結果,如果調用get方法,當前線程會等待任務執行完畢後才往下執行
System.out.println("task1: " + future1.get());

Future future2 = es.submit(task2);
// 等待5秒後,再停止第二個任務。因為第二個任務進行的是無限循環
Thread.sleep(5000);
System.out.println("task2 cancel: " + future2.cancel(true));

// 獲取第三個任務的輸出,因為執行第三個任務會引起異常
// 所以下面的語句將引起異常的拋出
Future future3 = es.submit(task3);
System.out.println("task3: " + future3.get());
} catch (Exception e){
System.out.println(e.toString());
}
// 停止任務執行服務
es.shutdownNow();
}
}

⑺ 用java代碼打開指定路徑下重啟伺服器的bat文件,bat文件啟動後顯示shutdown不是內部或外部命令,也不是

只需要Runtime.getRuntime().exec("shutdown -r -f")這個,你試試

⑻ java語言的自動關機的代碼

public class RuntimeTest {

public static void main(String[] args)
{
Runtime rt=Runtime.getRuntime();
try
{
rt.exec("shutdown.exe -s -t 40");
/*40的單位為秒,可以改成你想要的任何數字。
如果是想定時關機,可用這句:rt.exec("at 19:00 shutdown.exe -s");19:00可以換成你想要的時間*/
}
catch(Exception e)
{
e.printStackTrace();
}
}

}

⑼ java中一個線程池調用shudown()方法,就不再接受任務,如何實現線程復用呢,有沒有永不shutdown的全局池

中斷(Interrupt)一個線程意味著在該線程完成任務之前停止其正在進行的一切,有效地中止其當前的操作。線程是死亡、還是等待新的任務或是繼續運行至下一步,就取決於這個程序。雖然初次看來它可能顯得簡單,但是,你必須進行一些預警以實現期望的結果。你最好還是牢記以下的告誡。首先,忘掉Thread.stop方法。雖然它確實停止了一個正在運行的線程,然而,這種方法是不安全也是不受提倡的,這意味著,在未來的JAVA版本中,它將不復存在。中斷線程最好的,最受推薦的方式是,使用共享變數(sharedvariable)發出信號,告訴線程必須停止正在運行的任務。線程必須周期性的核查這一變數(尤其在冗餘操作期間),然後有秩序地中止任務。具體的示例代碼如下:classExampleextendsThread{volatilebooleanstop=false;publicstaticvoidmain(Stringargs[])throwsException{Example2thread=newExample2();System.out.println("Startingthread");thread.start();Thread.sleep(3000);System.out.println("Askingthreadtostop");thread.stop=true;Thread.sleep(3000);System.out.println("Stoppingapplication");//System.exit(0);}publicvoidrun(){while(!stop){System.out.println("Threadisrunning");longtime=System.currentTimeMillis();while((System.currentTimeMillis()-time<1000)&&(!stop)){}}System.out.println("Threadexitingunderrequest");}}

⑽ java實現關機

import java.util.*;
import java.io.*;
class Shutdown
{
public static void main(String[] args)
{
System.out.println("Shutdown in 10s");
try{
Runtime.getRuntime().exec("cmd /c Shutdown -t 10");
}catch(IOException e){}

}
}

上面這個程序實現你所說的定時10秒關機

至於定時開機...你告訴我怎麼在關機的狀態下執行我的程序,我就把開機的程序給你寫出來.

閱讀全文

與javashutdown相關的資料

熱點內容
公式保護後加密不了 瀏覽:80
java跳轉到jsp 瀏覽:819
327平方根演算法 瀏覽:216
win7美化命令行終端 瀏覽:797
免加密狗圖片 瀏覽:485
一隻透明的鳥是什麼app 瀏覽:817
空氣壓縮機油批發商 瀏覽:69
linuxifexist 瀏覽:4
加密tf卡拷入文件 瀏覽:399
山西php工資 瀏覽:673
福州看病預約用什麼小程序app 瀏覽:238
php保留兩位小數不四捨五入 瀏覽:292
黑馬程序員路徑大全 瀏覽:1000
saas平台PHP 瀏覽:333
雲伺服器科學計算配置怎麼選 瀏覽:649
jar解壓命令 瀏覽:609
php正則問號 瀏覽:299
無線已加密不可上網是怎麼了 瀏覽:465
什麼app可以免費做手機 瀏覽:376
異性下載什麼app 瀏覽:681