jollen.org

Jollen 的 Blog
Jollen's email: jollen # jollen.org
more:  Jollen's Training

[教育訓練紀錄] nonblocking wait: try lock

.作者:jollen/
.日期:March 15, 2008 6:13 PM


今天在進行 GNU Toolchains 與 Embedded Linux Programming 教育訓練課程時,提及以 shared memory 實作 IPC 時的同步問題。針對 unrelated process 的同步存取控制,一種古老的做法「locking」能簡單地應用在此同步問題上。

當寫入端做出 locking(如:lock file)時,讀取端便要等待 locking 被解除,因此這是一個 blocking wait 的架構。不過,若將「wait for unlucking」改成「try lock」,便能在中間的空閒時間「做點事情」,程式也不會晾著沒事做。

lock_trylock.png

一種簡單的程式架構,以「try lock」來做同步控制,讓程式閒著也要想辦法幹點活兒。另一個類似的觀念為 pthread semaphore 的 sem_trywait()

延伸閱讀

2007.01.16: Shared Memory 的 Race Condition

Tags:

純手工打造說明:技術專欄文章為 Jollen 原創,內容皆為人工撰寫,無 AI 生成。轉載請註明出處與作者,並全文引用。轉載時請在文章開頭或結尾明顯處註明「本文出處:https://www.jollen.org,已取得原作者同意並授權使用。」
訂閱電子報:不定期 Jollen's Blog 精選文章隨 Moko365 電子報寄送;請透過 Moko365 電子報訂閱(可隨時取消)。

Copyright(c) 2001–2008 www.jollen.org. All rights reserved.
Last update: 2026-07-22