根據執行緒池的原理,自己實現個執行緒池。
/*
* 執行緒池管理器:用於建立並管理執行緒池,包括: 建立執行緒池,銷毀執行緒池,新增新任務
* 客戶端等待乙個可用執行緒、將任務傳遞給該執行緒以便執行、然後在任務完成時將執行緒歸還給池
*/public class threadpool
this.threadcounter = 10; }
public synchronized static threadpool getinstance()
return instance; }
public synchronized void start(runnable target)else }
public void repool(workerthread workerthread)
public void shutdown()
} public int getthreadcounter()
}
/*
* 工作執行緒:執行緒池中線程,在沒有任務時處於等待狀態,以迴圈的方式執行任務
*/public class workerthread extends thread
public synchronized void settarget(runnable target)
public void run()
} catch (interruptedexception e)
} }public void shutdown()
}
public class task implements runnable
public task(string name)
@override
public void run() catch (interruptedexception e) }
public static void main(string args)
system.out.println("threadcounter="+threadpool.getinstance().getthreadcounter());
}}
多執行緒學習 十 執行緒狀態 守護執行緒
守護執行緒 執行緒分為守護執行緒和使用者執行緒,當程式中沒有使用者執行緒時,jvm會退出.方法 內容void setdaemon boolean on 將該執行緒標記為守護執行緒或使用者執行緒 boolean isdeamon 測試該執行緒是否為守護執行緒。void setdaemon boolea...
執行緒 執行緒池
執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後執行,主要實現 建立執行緒和管理執行緒,並且給執行緒分配任務。執行緒池中的執行緒是併發執行的。乙個比較簡單的執行緒池至少應包含執行緒池管理器 工作執行緒 任務列隊 任務介面等部分。其中執行緒池管理器的作用是建立 銷毀並管理...
執行緒 執行緒池
乙個簡單執行緒的建立和銷毀如下 與程序程序相比,執行緒是一種輕量級的工具,但是輕量並不代表沒有,它的建立和關閉依然需要花費時間,如果建立和銷毀的時間還大於執行緒本身完成的工作,那就會得不償失,甚至會造成out of memory。即使沒有,大量的執行緒 也會給gc帶來巨大的壓力。為了解決這樣的問題,...