Java涓璽hreadpoolexecutor鎬庝箞閰嶇疆
鍦↗ava涓紝鍙互閫氳繃閰嶇疆ThreadPoolExecutor鐨勬瀯閫犲櫒鏉ュ垱寤轰竴涓嚎绋嬫睜锛屽苟璁剧疆涓€浜涘弬鏁版潵鎺у埗绾跨▼姹犵殑琛屼负銆備笅闈㈡槸涓€涓ず渚嬩唬鐮侊紝婕旂ず浜嗗浣曢厤缃甌hreadPoolExecutor锛?/p>
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
// 鍒涘缓涓€涓嚎绋嬫睜锛屽叾涓寘鍚?涓嚎绋? ThreadPoolExecutor executor = new ThreadPoolExecutor(
5, // 鏍稿績绾跨▼鏁? 10, // 鏈€澶х嚎绋嬫暟
60, // 绌洪棽绾跨▼瀛樻椿鏃堕棿
TimeUnit.SECONDS, // 鏃堕棿鍗曚綅
new LinkedBlockingQueue<Runnable>() // 闃诲闃熷垪
);
// 璁剧疆鎷掔粷绛栫暐涓虹洿鎺ユ姏鍑哄紓甯? executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
// 鎵ц浠诲姟
executor.execute(new MyTask());
// 鍏抽棴绾跨▼姹? executor.shutdown();
}
}
class MyTask implements Runnable {
@Override
public void run() {
System.out.println("Hello from MyTask!");
}
}
鍦ㄤ笂闈㈢殑绀轰緥浠g爜涓紝鎴戜滑鍒涘缓浜嗕竴涓猅hreadPoolExecutor瀵硅薄锛屽苟璁剧疆浜嗘牳蹇冪嚎绋嬫暟涓?锛屾渶澶х嚎绋嬫暟涓?0锛岀┖闂茬嚎绋嬪瓨娲绘椂闂翠负60绉掞紝闃诲闃熷垪涓篖inkedBlockingQueue銆傜劧鍚庢垜浠缃簡鎷掔粷绛栫暐涓虹洿鎺ユ姏鍑哄紓甯革紝鏈€鍚庢墽琛屼簡涓€涓换鍔″苟鍏抽棴浜嗙嚎绋嬫睜銆備綘鍙互鏍规嵁鑷繁鐨勯渶姹傛潵閰嶇疆ThreadPoolExecutor鐨勫弬鏁帮紝浠ユ弧瓒充笉鍚岀殑鍦烘櫙闇€姹傘€?/p>