2008年7月16日 星期三

[Java] ConcurrentLinkedQueue Demo

Queue 是大家常碰到的資料結構, 我們可以利用一條 thread 放命令, 另外一條 thread 等待時機然後開始讀取命令並執行工作. 利用 Queue 讓我們可以執行非同步處理的工作.

 

然而, 遇到多執行緒, 問題馬上就來了. 當有一個執行緒正在加入新的命令, 另外一個執行緒要讀命令, 就會有同步的問題. 一般我們都會用同步的指令來保護 queue 的內部狀態, 使其一致.

 

幸好, Java 已經幫我們完成上述的工作, 你不用管多執行緒的問題, ConcurrentLinkedQueue 已經幫你做好了.

操作很簡單

加入資料: add

取出資料: poll

下面是一個簡單的操作範例:

為了簡單起見沒有使用 multi-thread 實做這個範例, 但是已經包含了基本的操作

 

Main.java   完整專案

 

 

by Jing.

1 則留言:

  1. 用synchronized冠上自己的function應該也是可以work?!

    回覆刪除