创建线程池的参数,线程池的参数有哪些


创建线程池的参数,线程池的参数有哪些

文章插图
线程池,threadpool有哪些重要的参数:
创建线程池的参数,线程池的参数有哪些

文章插图
线程池是为突然大量爆发的线程设计的,通过有限的几个固定线程为大量的操作服务,减少了创建和销毁线程所需的时间,从而提高效率 。如果一个线程的时间非常长,就没必要用线程池了(不是不能作长时间操作,而是不宜 。),况且还不能控制线程池中线程的开始、挂起、和中止 。
【创建线程池的参数,线程池的参数有哪些】java线程池中的线程数应该如何设置:
java中线程池的监控可以检测到正在执行的线程数 。
通过线程池提供的参数进行监控 。线程池里有一些属性在监控线程池的时候可以使用
taskCount:线程池需要执行的任务数量 。
completedTaskCount:线程池在运行过程中已完成的任务数量 。小于或等于taskCount 。
largestPoolSize:线程池曾经创建过的最大线程数量 。通过这个数据可以知道线程池是否满过 。如等于线程池的最大大小,则表示线程池曾经满了 。
getPoolSize:线程池的线程数量 。如果线程池不销毁的话,池里的线程不会自动销毁,所以这个大小只增不+ getActiveCount:获取活动的线程数 。
通过扩展线程池进行监控 。通过继承线程池并重写线程池的beforeExecute,afterExecute和terminated方法,我们可以在任务执行前,执行后和线程池关闭前干一些事情 。如监控任务的平均执行时间,最大执行时间和最小执行时间等 。这几个方法在线程池里是空方法 。如:
protected void beforeExecute(Thread t, Runnable r) { }
C# 中如何使用带参数的线程池:
调用带参数的线程:new Thread(Say).Start("what is your name")

//Say模拟带参数的一线程
private static void Say(object sender)
{
string str = (string)sender;
//.....
}

Java几种线程池类型介绍及使用:
线程池作用就是限制系统中执行线程的数量 。
根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高 。用线程池控制线程数量,其他线程 排队等候 。一个任务执行完毕,再从队列的中取最前面的任务开始执行 。若队列中没有等待进程,线程池的这一资源处于等待 。当一个新任务需要运行时,如果线程 池中有等待的工作线程,就可以开始运行了;否则进入等待队列 。

Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具 。真正的线程池接口是ExecutorService 。ThreadPoolExecutor是Executors类的底层实现 。

    推荐阅读