2008-06-17
生产消费问题编码
有这样一个应用,需要做以下步骤
1、更新资源空闲状态,(需要定时的更新)
2、开始接受请求者使用资源请求。(在规定的小段时间内接受请求)
希望编码能做到以下效果
...
//执行1方法
...
//接受调用2方法的请求
...
//执行1
...
//接受调用2方法的请求
...
...
呵呵,不知道说清楚没有,问题不是用timer去执行两个方法,而是只有到第2步时,才能让客户端来调用2方法。
已经考虑过用共享一个对象同步的方法,但是可能出现共同对象被第2步的方法请求长时间占用。不能保证1方法的定时执行。需要让1方法的执行优先级别高于2方法。
请大家看看有什么方法实现这段代码!
1、更新资源空闲状态,(需要定时的更新)
2、开始接受请求者使用资源请求。(在规定的小段时间内接受请求)
希望编码能做到以下效果
...
//执行1方法
...
//接受调用2方法的请求
...
//执行1
...
//接受调用2方法的请求
...
...
呵呵,不知道说清楚没有,问题不是用timer去执行两个方法,而是只有到第2步时,才能让客户端来调用2方法。
已经考虑过用共享一个对象同步的方法,但是可能出现共同对象被第2步的方法请求长时间占用。不能保证1方法的定时执行。需要让1方法的执行优先级别高于2方法。
请大家看看有什么方法实现这段代码!
评论
dennis_zane
2008-06-17
楼上说了,用条件队列协调,你描述的不是很清楚,不过看情况就得用条件队列,可以传统的wait,notify,也可以使用更细粒度的jdk5的Condtion
cljhyjs
2008-06-17
自己想了一个办法,大家看行不行
private static boolean block = false; //信号变量
public boolean startSchedule() { //方法1
while (true) {
try {
block = true;
Thread.sleep(2000l);
// update program free connection information
programManager.updateFreeConn();
notifyAll();
block = false;
// to sleep
Thread.sleep(schuldeInterval);
} catch (InterruptedException e) {
....
}
//方法2
public Message tryToPlay(String sessionId, String progId) {
if (block) {
try {
this.wait();
} catch (InterruptedException e) {
.....
private static boolean block = false; //信号变量
public boolean startSchedule() { //方法1
while (true) {
try {
block = true;
Thread.sleep(2000l);
// update program free connection information
programManager.updateFreeConn();
notifyAll();
block = false;
// to sleep
Thread.sleep(schuldeInterval);
} catch (InterruptedException e) {
....
}
//方法2
public Message tryToPlay(String sessionId, String progId) {
if (block) {
try {
this.wait();
} catch (InterruptedException e) {
.....
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 2055 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
1
共 1 张
共 1 张
最近加入圈子
最新评论
-
生产消费问题编码
楼上说了,用条件队列协调,你描述的不是很清楚,不过看情况就得用条件队列,可以传统 ...
-- by dennis_zane -
生产消费问题编码
自己想了一个办法,大家看行不行 private static boolean ...
-- by cljhyjs -
讨论一下大用户量应用客户 ...
cljhyjs 写道 最近公司正在做一个项目,该项目的客户端应用相当广泛,类 ...
-- by jiyanliang -
讨论一下大用户量应用客户 ...
用UDP,客户端定时发送心跳包到服务器避免路由器删除NAT的SESSION,需要 ...
-- by ydsoft -
讨论一下大用户量应用客户 ...
没人回答,自己up一下!看了banq的关于建立高性能聊天室文章,似有收获
-- by cljhyjs






评论排行榜