public class threadloadexecuterkeeper implements runnable
public void init(string thread_load)else
executor.setthreadfactory(new processworkerthreadfactory("workerthreadpool")); }
public void addjobfinder(jobfinder finder)
finders.add(finder);
jobit = null; }
public job findjob() else
} private iteratorgetjobiterator()
/*** 迭代執行緒池中的執行緒
*/public void getalivedthread() }
@override
public void run() else if(executor.getactivecount()==0)
system.err.println("正在執行任務的執行緒個數:"+executor.getactivecount());
jobref = findjob();
if(jobref==null)else
} catch (interruptedexception e)
}else
} }private static class worker implements callable
public boolean getisdone()
@override
public job call() throws exception
isdone = true;
logger.info(thread.currentthread().getname()+"執行完成。");
return jobref;
} }/**
* 定時任務:用來取消超時的執行緒
* @author
* */
private static class jobtimertask extends timertask
public void setfuture(futurefuture)
public void run()else}}
}} }
/*** 自定義執行緒池工廠
* @author ligx
* */
class processworkerthreadfactory implements threadfactory
@override
public thread newthread(runnable r) }
/*** 自定義執行緒池中的執行緒
* @author ligx
* */
static class processworkerthread extends thread
public void run()
}}
執行緒池實戰總結
1 怎麼優化執行緒池引數的 執行緒池 主要就是解決了 執行緒建立的問題,頻繁建立執行緒 會占用cpu資源 2 應用的業務場景 怎麼併發控制線程 第一步先挑執行緒池大小 核心執行緒大小 和 最大執行緒池大小 coresize maxsize 3 coresize 一般設定多大 coresize 一般2...
Java執行緒池應用
1.背景 諸如web 伺服器 資料庫伺服器 檔案伺服器或郵件伺服器之類的許多伺服器應用程式都面向處理來自某些遠端 的大量短小的任務。伺服器應用程式中經常出現的情況是 單個任務處理的時間很短而請求的數目卻是巨大的。2.解決方法 構建伺服器應用程式的乙個過於簡單的模型應該是 每當乙個請求到達就建立乙個新...
執行緒池的應用
在專案中,應用到了執行緒池,將 記錄下來,以便將來檢視。1.獲取案件資訊列表 controller中的方法 由其他方法呼叫 public listgetcaseinfolist jsonarray jsonarray jsonlist jsonarray.sublist threadsize i,d...