像阻塞,直到文件播放完成,原理是什麼,以及如何實現它?阻塞模式的原理是什麼?
-1
A
回答
1
「阻塞」意味着操作不會將控制權返回給調用者,直到「阻塞直到」爲止。
這可以通過幾種方式來實現:
- 代表阻止別人的責任。例如,請撥打
pthread_mutex_lock
,這可能會阻止。這也使你的功能塊。其他功能是read
和其他任何可能會阻止的系統調用。 - 旋轉。換句話說,有一些看起來像
while (!condition) {}
的代碼。這將會佔用整個CPU內核,因此如果您要阻塞任何大量時間,這不是一個好習慣。 - 使用信號處理程序。撥打
sleep(5000)
或其他一些,並通過SIGALARM
或其他異步方法終止睡眠。
在媒體播放器的情況下,「阻塞直到文件播放結束」意味着「等到媒體文件播放完畢後才返回」。
+0
就我而言,它是'pEvent-> WaitForCompletion(INFINITE,&evCode);',知道它是如何實現的嗎? – Alan 2010-08-14 07:41:35
+0
你關心它是如何實現的嗎?您正在使用來自接口的方法,並且該接口記錄了行爲。這種行爲如何實現(在這個層面上)可能不如它重要。你只需要知道,只要你調用該方法,該方法將不會返回,直到操作完成:執行流程被阻塞,直到條件滿足。 – 2010-08-14 12:21:09
0
讓一個線程等待一個事件,這個事件在文件完成播放時被另一個線程觸發。
相關問題
- 1. java中的阻塞模式是什麼
- 2. 爲什麼select()始終在非阻塞模式下被阻塞
- 3. Python:爲什麼recv()在阻塞模式下沒有阻塞?
- 4. BlockingQueue阻塞的方式是什麼?
- 5. load_balanced_mode()中的IPython.parallel中的阻塞和非阻塞模式有什麼區別?
- 6. 爲什麼在python中阻塞模式不會阻塞recv函數
- 7. NIO非阻塞模式
- 8. 「幀阻塞」是什麼意思?
- 9. 互斥鎖:「阻塞」是什麼意思?
- 10. 確定什麼是阻塞UI線程
- 11. 什麼是非阻塞信號量?
- 12. 什麼是使對象的非阻塞版本的Pythonic方式?
- 13. 爲什麼ioctl()不阻塞?
- 14. 爲什麼concurrent_queue非阻塞?
- 15. 什麼時候FileInputStream.read()阻塞?
- 16. PHP流中的阻塞和非阻塞模式
- 17. 進程接收SIGTTYIN/TTOU而不是阻塞的歷史原因是什麼?
- 18. 是renderer.render()阻塞還是非阻塞?
- 19. 什麼是「模擬阻塞」(在tomcat doc中可以看到)?
- 20. 什麼是簡單的話阻止IO和非阻塞IO?
- 21. 期限:: ReadKey,無阻塞讀取原始模式:檢測EOF?
- 22. 阻塞和非阻塞讀取之間有什麼區別?
- 23. Android開發中的設計模式原理是什麼?
- 24. LOADDLL.EXE的原理是什麼?
- 25. 在mac chrome上長時間阻塞xhr的可能原因是什麼?
- 26. 如何切換socketchannel的阻塞模式?
- 27. 是sed阻塞?
- 28. 使用SM內核阻塞GPU卡的處理模式
- 29. MSMQ:以非阻塞方式讀取隊列的最佳方式是什麼?
- 30. Web Socket和非阻塞模式
這對我來說似乎令人難以置信的模糊。有沒有一個特定的語言/框架,你指的是? – 2010-08-14 06:01:22
還是原理? – msw 2010-08-14 06:04:46
是什麼問題?阻止數據庫模式?或者你談論信號量? – txwikinger 2010-08-14 06:09:00