多執行緒14 模擬訊息佇列

2022-08-28 01:42:08 字數 1219 閱讀 3036

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...