1.
/*** 模擬queue
* @author alienware
* */
public class myqueue
public void put (object obj) catch (interruptedexception e)
}list.add(obj);
count.getandincrement(); // count++
system.out.println(" 元素 " + obj + " 被新增 ");
lock.notify();
} }public object take() catch (interruptedexception e)
}count.getanddecrement();// count--
temp = list.removefirst();
system.out.println(" 元素 " + temp + " 被消費 ");
lock.notify();
} return temp; }
public int size()
public static void main(string args) throws exception
}, "t1");
thread t2 = new thread(new runnable()
} catch (exception e)
}}, "t2");
t1.start();
thread.sleep(1000);
t2.start();
} /*
* 元素 a 被新增
元素 b 被新增
元素 c 被新增
元素 d 被新增
元素 e 被新增
當前元素個數:5
元素 a 被消費
元素 h 被新增
被取走的元素:a
元素 b 被消費
被取走的元素:b
元素 i 被新增
元素 c 被消費
被取走的元素:c
元素 d 被消費
被取走的元素:d
元素 e 被消費
被取走的元素:e
元素 h 被消費
被取走的元素:h
元素 i 被消費
被取走的元素:i
*/}
java多執行緒 訊息佇列
1 定義乙個佇列快取池 private static list queuecache new linkedlist 2 定義佇列緩衝池最大訊息數,如果達到該值,那麼佇列檢入將等待檢出低於該值時繼續進行。private integer offermaxqueue 2000 3 定義檢出執行緒,如果佇列...
多執行緒安全無鎖訊息佇列
技術介紹 cas 原子操作 是有cpu提供的原子操作。mydeque 入隊操作 void enqueue t value 通過援助操作,更新tail cas tail,tail,tail next 出對操作 t dequeue t temvalue q value recycle q 空間 retu...
C 多執行緒框架(三) 訊息佇列
原帖 首先,之前,多執行緒一些基本的東西,包括執行緒建立,互斥鎖,訊號量,我們都已經封裝,下面來看看訊息佇列 我們盡量少用系統自帶的訊息佇列 比如linux的sys msgqueue 那樣移植性不是很強,我們希望的訊息佇列,在訊息打包和提取都是用的標準的c 資料結構,當然,你也可以用鍊錶或者是fif...