互斥鎖
define_mutex 靜態定義和初始化乙個互斥鎖,static define_mutex(fsl_ifc_nand_mutex);
mutex_init 動態初始化乙個互斥鎖,mutex_init(&ecc->lock);
mutex_lock 加鎖,阻塞引起睡眠,不能被中斷,mutex_lock(&bch->lock);
mutex_lock_interruptible 阻塞引起睡眠,不能被中斷,mutex_lock_interruptible(&ecc->lock);
mutex_unlock 解鎖,mutex_unlock(&ecc->lock);
自旋鎖
spin_lock_init 初始化自旋鎖x,spin_lock_init(x);
spin_lock 加鎖,不會引起阻塞和睡眠
spin_trylock 盡力獲得自旋鎖,如果能立即獲得鎖,並返回真,否則不能獲得鎖,立即返回假
spin_unlock 釋放自旋鎖
訊號量
static define_semaphore(console_sem);
sema_init 初始化設定訊號量的初值,sema_init(&console_sem, 1);
down 獲得訊號量sem,引起睡眠,因此不能在中斷上下文,判斷sem大於0,減1繼續執行,否則掛起等待訊號量,down(&console_sem);
down_interruptible 可被訊號中斷;
down_trylock 獲得訊號量失敗馬上返回,不會引起睡眠;
up 釋放訊號量sem,把sem的值加1,up(&console_sem);
讀寫訊號量
init_rwsem
down_read
down_write
up_read
up_write
還有更多的其他方式,待發現。。。
Linux核心執行緒
核心執行緒是直接由核心來啟動的程序,通常也稱為守護程序,用於執行下列任務 記憶體頁很少使用時,換出。管理延時的動作。實現檔案系統的事務日誌。週期性的將修改的記憶體頁與頁 塊裝置同步。其它。核心執行緒按照工作方式可以分為兩種型別 執行緒啟動後一直在等待,直到核心請求執行緒執行某一特定操作。執行緒啟動後...
Linux 執行緒通訊
linux系統中的程序間通訊方式主要以下幾種 同一主機上的程序通訊方式 unix程序間通訊方式 包括管道 pipe 有名管道 fifo 和訊號 signal system v程序通訊方式 包括訊號量 semaphore 訊息佇列 message queue 和共享記憶體 shared memory ...
Java核心類庫,執行緒通訊
執行緒通訊 不同的執行緒執行不同的任務,如果這些任務有某種關係,執行緒之間必須能夠通訊,協調完成工作。我們來看乙個案例 生產者和消費者案例 producer consumer 生產者和消費者應該操作共享的資源 實現方式來做 使用乙個或多個執行緒來表示生產者producer 使用乙個或多個執行緒來表示...