高併發程式設計 6 結束執行緒生命週期的兩種方式

2021-09-25 05:35:01 字數 1648 閱讀 1711

一、概述

1、優雅結束執行緒的生命週期 

2、暴力結束執行緒的生命週期(非同步網路請求:請求超時自動斷開連線案例,可以自由斷開請求)

二、**

package com.cfl.thread;

public class thread6

/*** 優雅中斷執行緒

* @throws exception

*/public static void interruptthread() throws exception }}

});thread.start();

thread.sleep(2*1000);

// 中斷執行緒

thread.interrupt(); }

/*** 暴力結束執行緒

* @throws exception

*/public static void violencestopthread() throws exception catch (interruptedexception e)

}}, 10*1000);

thread.start();

system.out.println("#############");

// thread.stop();

} // 模擬非同步網路請求

static class customasynthread

// 開始

public void start() catch (interruptedexception e)

long ctime = system.currenttimemillis() - starttime;

system.out.println(ctime);

if(ctime > timeout) }}

};timethread.start();

// 執行任務執行緒

thread thread = new thread(runnable,"執行任務執行緒");

thread.setdaemon(true); // 設定為守護執行緒

thread.start();

try catch (interruptedexception e)

};};

parentthread.start();

} // 結束執行緒

public void stop()

} }// 模擬同步網路請求

static class customsynthread

// 開始

public void start() catch (interruptedexception e)

};};

parentthread.start();

while (!isfinish) catch (interruptedexception e)

long ctime = system.currenttimemillis() - starttime;

system.out.println(ctime);

if(ctime > timeout)

}} // 結束執行緒

public void stop()

} }}

執行緒的生命週期,執行緒結束

乙個新的執行緒通過start 進入執行狀態,在執行狀態中可以進行yield 方法進行禮讓,但是仍然可以進行,如果現在現場需要暫停的話,可以使用suspend sleep wait 方法。如果執行緒不要執行,通過通過stop 結束 如果run 方法執行完畢也表示結束 或者乙個新的執行緒直接呼叫stop...

執行緒的生命週期,執行緒結束

乙個新的執行緒通過start 進入執行狀態,在執行狀態中可以進行yield 方法進行禮讓,但是仍然可以進行,如果現在現場需要暫停的話,可以使用suspend sleep wait 方法。如果執行緒不要執行,通過通過stop 結束 如果run 方法執行完畢也表示結束 或者乙個新的執行緒直接呼叫stop...

多執行緒之結束執行緒生命週期(四)

通過設定乙個標識ture,false。通過標識關閉執行緒 public class threadend1 t.start thread.sleep 5 shutdown 關閉 private static void shutdown 通過判斷執行緒中斷標識 public class threaden...