自己的线程池
来源:互联网 发布:转换图片格式的软件 编辑:程序博客网 时间:2024/05/21 16:52
线程池我们都听说过,但它具体是如何工作的好像并不清楚。且看下面的分析。
当一个任务可由4个线程完成时,如果再生成更多的线程则会降低cpu利用率,那么我们只用这四个线程就行了。 但一个线程当它的任务完成时,它就会die,这样我们就不能再利用了。我们有方法让它不die,并把这4个线程放到一个数组(其它数据结构也行)中来循环利用它们,这个数组就是一个 thread pool 了! 真正实现时还要结合这个任务(task)本身以及线程间的通信。 下面是一个例子,代码比较难,慢慢研究。
假设我们想压缩一个目录下所有文件,我们想用几个线程来完成这个任务,每个线程压缩一个文件,当完成压缩后它再去拿一个文件来压缩。首先来看这个线程类:
主线程类:
这个文章主要是自己看,不太懂其它同行,原文在“Java Network Programming 3rd” 第五章 Threads 中的 5.6 Thread pools.
- 自己的线程池
- 自己实现的线程池
- 自己编写的简单的线程池
- 我自己通用的线程池
- 利用ACE 自己实现的线程池
- 利用Java编写自己的线程池
- 自己写的线程池, threadpool
- java线程池---编写自己的线程池
- 自己设计线程池
- 定制自己的线程池管理类、防止OOM
- 自己实现一个“线程池”
- 自己实现一个“线程池”
- java线程池自己理解
- 自己实现JAVA线程池
- java线程池--自己编写的线程池,非Eclipse自带
- 关于进程线程的自己的想法
- 如何开发自己的线程类
- Java_自己写的线程队列类
- STL list
- nginx做图片访问分发
- 访问其他程序的SharedPreferences里的数据信息
- spring3mvc与struts2比较
- 解决Linux上Dr.com
- 自己的线程池
- 新生报到
- sicily分类
- QLJT移植u-boot-2010.09到s3c2440
- EDA的使用方法
- 请教,如何初始化一个类中的static const二维vector向量。
- 请教,如何初始化一个类中的static const二维vector向量。
- linux下处理大文件程序的编译参数
- 请教,如何初始化一个类中的static const二维vector向量。