论坛首页 Java企业应用论坛

生产消费问题编码

浏览 1500 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-06-17  
有这样一个应用,需要做以下步骤
1、更新资源空闲状态,(需要定时的更新)
2、开始接受请求者使用资源请求。(在规定的小段时间内接受请求)

希望编码能做到以下效果

...
//执行1方法
...
//接受调用2方法的请求
...
//执行1
...
//接受调用2方法的请求
...
...


呵呵,不知道说清楚没有,问题不是用timer去执行两个方法,而是只有到第2步时,才能让客户端来调用2方法。

已经考虑过用共享一个对象同步的方法,但是可能出现共同对象被第2步的方法请求长时间占用。不能保证1方法的定时执行。需要让1方法的执行优先级别高于2方法。



请大家看看有什么方法实现这段代码!
   发表时间: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) {
   .....




0 请登录后投票
   发表时间:2008-06-17  
楼上说了,用条件队列协调,你描述的不是很清楚,不过看情况就得用条件队列,可以传统的wait,notify,也可以使用更细粒度的jdk5的Condtion
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics