欢迎来到天天文库
浏览记录
ID:37845032
大小:44.00 KB
页数:6页
时间:2019-06-01
《java中线程池的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java中线程池的实现/***
Copyright:Copyright(c)2002-2003
Company:JavaResearch(http://www.javaresearch.org)
最后更新日期:2003年4月22日
2、的确省值publicfinalstaticintDEFAULT_MIN_SIZE=0;publicfinalstaticintDEFAULT_MAX_SIZE=Integer.MAX_VALUE;publicfinalstaticlongDEFAULT_RELEASE_DELAY=10*1000;//用户定制的threadpool属性值protectedintminSize;protectedintmaxSize;protectedlongreleaseDelay;//ThreadPool里现有的线程数protectedintcurrentSize;//ThradPool里还
3、可以提供的线程数protectedintavailableThreads;//任务列表(实质意义上的线程池)protectedVectortaskList;/***用户定制的ThradPool*@paramminSize线程池最少线程数*@parammaxSize线程池最多线程数*@paramreleaseDelay线程释放延时*/publicThreadPool(intminSize,intmaxSize,longreleaseDelay){this.minSize=minSize;this.maxSize=maxSize;this.releaseDelay=release
4、Delay;taskList=newVector(100);availableThreads=0;}/***缺省的ThreadPool*/publicThreadPool(){this(DEFAULT_MIN_SIZE,DEFAULT_MIN_SIZE,DEFAULT_RELEASE_DELAY);}/***设置线程池中最少线程数*@paramminSize线程池最少线程数*/publicsynchronizedvoidsetMinSize(intminSize){this.minSize=minSize;}/***读取线程池最少线程数这一属性*/publicsynchron
5、izedintgetMinSize(){returnminSize;}/***设置线程池中最大线程数*@parammaxSize线程池最大线程数*/publicsynchronizedvoidsetMaxSize(intmaxSize){this.maxSize=maxSize;}/***读取线程池最大线程数这一属性*/publicsynchronizedintgetMaxSize(){returnmaxSize;}/***设置线程池中线程释放延时*@paramreleaseDelay线程释放延时*/publicsynchronizedvoidsetReleaseDelay(
6、longreleaseDelay){this.releaseDelay=releaseDelay;}/***读取线程释放延时这一属性*/publicsynchronizedlonggetReleaseDelay(){returnreleaseDelay;}/***往ThreadPool里添加新的任务*@paramrunnable新的任务*/publicsynchronizedvoidaddTask(Runnablerunnable){taskList.addElement(runnable);if(availableThreads>0){this.notify();}else
7、{if(currentSizemaxSize){currentSize--;break;}task=getNextTask();if(task==null){try{availableThreads++;wait(releaseDela
此文档下载收益归作者所有