feu yeux
Belong to Eric Han
BlogJava | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

concurrent

 
轮询客户端的实现      摘要: 服务器端给第一个客户端发送notification,然后在限定时间内,等待客户端作出回应—向服务器发送request。如果客户端一直没有回复,服务器会在到达限定时间后,向第二个客户端发送notification。如果客户端在限定时间内回复,服务器端放弃再给其他客户端发送消息。
Design
服务器、客户端使用socket发送和接收信息
发送端存在一个客户端列表,每次发送一给一个客户端,发送后,向Helper发送添加该客户端id的请求。
客户端收到信息会向Helper发送删除该id的请求。
Helper收到add时,启动一个ScheduledExecutorService类的schedule,延时启动一个线程,并将该schedule缓存。remove时,从缓存里取出schedule并停止它。如果在延时时间内,线程没有被停止,它会被执行:从缓存中取出,告诉服务器向下一个客户端发送请求。  阅读全文
posted @ 2011-07-08 16:01 Lu Han 阅读(1610) | 评论 (1)  编辑
Java线程池类ThreadPoolExecutor浅析      摘要: 线程池的特点是将任务的提交和执行分开。这样做的好处是,能使处理器尽量多地同时执行任务。

1.当工人数量没有达到最小雇佣数量时,每当任务来临,线程池都要创建一个工人,把工人加入工人集合。

2.如果任务来临时,当前工人数量poolSize已经大于最小雇佣数量,线程池尝试把任务加入任务列表,如果成功,任务提交的步骤就结束了。

2.5.工人会不断地尝试从队列里获取任务,如果获取到任务(请看5),工人就把任务拿去执行。这是任务的执行步骤。

3.如果加入队列失败,再雇佣一个工人或者
4.拒绝该任务。

5.工人等待任务的策略分两种(本文不考虑生命周期和状态):死等!在给定时间内等。

6.没有任务则把该工人的线程结束。

7.没有拿到任务的工人,被清除出工人集合。  阅读全文
posted @ 2010-12-04 19:09 Lu Han 阅读(2343) | 评论 (0)  编辑
 

随笔:7 文章:1 评论:2 引用:0
<2025年7月>
日一二三四五六
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

公告

View Eric Han's profile on LinkedIn

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • concurrent(2) (rss)
  • database (rss)
  • IO(1) (rss)
  • rpc(1) (rss)
  • security(2) (rss)
  • xml (rss)

随笔档案

  • 2012年9月 (1)
  • 2012年4月 (1)
  • 2011年11月 (1)
  • 2011年7月 (1)
  • 2011年5月 (2)
  • 2010年12月 (1)

文章分类

  • JVM (rss)

文章档案

  • 2012年4月 (1)

搜索

  •  

最新评论

  • 1. re: Java远程方法调用实践
  • 不错,学习了!
  • --猪猪影院
  • 2. re: 发送Notification后的处理
  • 不错 学习了!
  • --猪猪电影

阅读排行榜

  • 1. Java安全传输实践(3801)
  • 2. Java线程池类ThreadPoolExecutor浅析(2343)
  • 3. Java远程方法调用实践 (2099)
  • 4. 轮询客户端的实现(1610)
  • 5. 事务简述(810)
  • 6. Java中并发环境中的For和ForEach(625)
  • 7. Java安全传输实践2(485)

评论排行榜

  • 1. 轮询客户端的实现(1)
  • 2. Java远程方法调用实践 (1)
  • 3. Java安全传输实践(0)
  • 4. Java线程池类ThreadPoolExecutor浅析(0)
  • 5. Java中并发环境中的For和ForEach(0)
  • 6. 事务简述(0)
  • 7. Java安全传输实践2(0)

Powered by: 博客园
模板提供:沪江博客
Copyright ©2025 Lu Han