java线程池的用法 想得分的进,答得好可以加分

liuhuanleijava 2011-08-05 04:30:08
线程池的用法及其思想最好有例子。java.util.concurrent.ExecutorService;这个类是实现了线程池么?实现线程池的方法有几种?谢谢解惑!!!
...全文
209 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
_了凡_ 2011-08-08
  • 打赏
  • 举报
回复
线程池:预先创建一定数量的线程,需要时,从池中找到一个空闲的线程来用,用完
后也不要退出线程,如此往复。若池中线程都处于忙碌状态时,则将请求阻塞。使用
线程池的好处是:避免了频繁的创建及销毁线程的资源开销。
java.util.concurrent.ExecutorService这个类确是可以用来方便地实现线程池,
如3楼所说,有3中模式:
(1)CachedThreadPool:将为每个任务都创建一个线程。
(2)FixedThreadPool:使用有限的线程集来执行所要提交的任务。
(3)SingleThreadPool:类似于线程集数量为1的FixedTheradPool,它会将所提交的
任务进行排队,每个任务都会在下一个任务开始运行前结束,所有任务都使用相同的线程。

我所了解的线程池的使用一般是在服务器端/客户端网络编程时有所使用,服务器对于
客户端所过来的请求,可以有多种方式:
(1)依次处理这些请求(这种是初学socket弄得玩的东西)
(2)为每个请求开辟一个进程(类unix系统可能的实现方式,加入请求不是太多的话,在
Java中可忽略此中方式,初学java,反正我没见过Java中的多进程)
(3)为每个请求开辟一个线程(常规方法,效率较高,但考虑到若是请求过多时,势必
开辟了很多的线程,服务器资源也消耗得厉害,所以就需要管理这些线程了,常见的方法就
是采用线程池啦)
至于实例,网上蛮多,自行去找找啦……
liuhuanleijava 2011-08-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 is_zhoufeng 的回复:]
only 20score you say a j8 mao ?
[/Quote]
你能答得好 我给你加80分
meran 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 is_zhoufeng 的回复:]

only 20score you say a j8 mao ?
[/Quote]
正解啊
_jerrytiger 2011-08-05
  • 打赏
  • 举报
回复
only 20score you say a j8 mao ?
luohuijun619 2011-08-05
  • 打赏
  • 举报
回复
用common-pool.jar可以实现
meran 2011-08-05
  • 打赏
  • 举报
回复
简单给你说一下, 线程池 和 数据库连接池这种其实差多。 主要就是 因为 线程管理困难,并且创建开销较大
所以我们就创建线程池来提供服务,当有需要服务的任务时我们找到线程池中空闲的线程来提供服务,服务过后再放回池中。 如果池中 无空闲线程, 可能选择任务阻塞等待,或者返回。

newFixedThreadPool(int i); 用来创建固定线程数量线程池
newSingleThreadPool();创建单线程的线程池
newCachedThreadPool(); 创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们
上面都是Executors 的方法

ExecutorService这个类实现的是对线程池进行操作
shawn.bug 2011-08-05
  • 打赏
  • 举报
回复
哇撒,好多的分撒
莫欺少年穷 2011-08-05
  • 打赏
  • 举报
回复
线程池----我好想刚学电解池--

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧