Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> 解決Linux系統驅動同步與互斥

解決Linux系統驅動同步與互斥

日期:2017/2/7 9:24:56      編輯:Linux教程

事件等待隊列一般用於linux驅動的異步通信,也可以叫做申請設備使用權等待隊列。當多個進程去操作一個設備時,這個時候一般要用到事件隊列。

  1、不可中斷睡眠:

  wait_event(queue, condition)

  wait_event_interruptible(queue, condition)

  兩個函數只有在condition變為true才能喚醒,否則一直睡眠,即是調用wake_up()也不能喚醒。zzzzzzzzzzzz

  2、可中斷睡眠

  wait_event_timeout(queue, condition, timeout)

  wait_event_interruptible_timeout(queue, condition, timeout)

  兩個函數在condition變為true或wake_up_interruptible()被調用都能被喚醒。

  3,喚醒函數:

  void wake_up(wait_queue_head_t *queue); //喚醒所有

  void wake_up_interruptible(wait_queue_head_t *queue); //喚醒interruptible

Copyright © Windows教程網 All Rights Reserved