1、定義乙個佇列快取池:
private static list queuecache = new linkedlist();
2、定義佇列緩衝池最大訊息數,如果達到該值,那麼佇列檢入將等待檢出低於該值時繼續進行。
private integer offermaxqueue = 2000;
3、定義檢出執行緒,如果佇列緩衝池沒有訊息,那麼檢出執行緒會執行緒等待中
new thread()
queue queue = queuecache.remove(0);
if(isiplock(queuestr))else
size = queuecache.size();
if(size=0)
}} catch (exception e) finally catch (execption e) }}
}.start();
4、檢入佇列
synchronized (queuecache) catch (interruptedexception e)
}//if
if(size<=offermaxqueue&&size>0)
break;//檢入完畢
}//while
}5、鎖方法實現
/**
* 鎖
* @param ip
* @return
* @throws
*/ public boolean islock(string queuestr)
//解鎖
public void uniplock(string queuestr)
}
java多執行緒訊息佇列的實現
1 定義乙個佇列快取池 private static list queuecache new linkedlist 2 定義佇列緩衝池最大訊息數,如果達到該值,那麼佇列檢入將等待檢出低於該值時繼續進行。private integer offermaxqueue 2000 3 定義檢出執行緒,如果佇列...
java多執行緒 訊息佇列的實現
1 定義乙個佇列快取池 private static list queuecache new linkedlist 2 定義佇列緩衝池最大訊息數,如果達到該值,那麼佇列檢入將等待檢出低於該值時繼續進行。private integer offermaxqueue 2000 3 定義檢出執行緒,如果佇列...
多執行緒14 模擬訊息佇列
1.模擬queue author alienware public class myqueue public void put object obj catch interruptedexception e list.add obj count.getandincrement count syste...