執行緒池應用實戰

2021-07-04 20:33:34 字數 1564 閱讀 3889

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...