當一個進程嘗試輸出到控制檯(使用printf)時,它是否在I/O事件中被髮送到等待隊列,所以短期調度程序開始執行並選擇另一個進程來執行CPU時間
在控制檯輸出事件處,上下文切換是否發生?printf()是否調用短期調度程序來安排就緒隊列中的另一個進程?
3
A
回答
1
當然,如果I/O流被另一個正在執行輸出的線程鎖定,可以。
不使用'短期調度程序'的含義。控制檯流可能會受到一個互斥體的保護,並在請求I/O時按照「常規」方式被線程鎖定/解鎖。
0
您將需要手動同步。你不能假設它是線程安全的。 如果你想要,單獨的線程不會同時訪問流,你需要用一個互斥量來包裝輸出。
相關問題
- 1. 我的線程是否在就緒隊列中?
- 2. 一次調用過程調度程序隊列/後臺線程
- 3. 在jquery就緒隊列中調用一次函數
- 4. 什麼存儲在進程的就緒隊列中?
- 5. jQuery就緒回調的調用順序
- 6. 調用一個調度隊列中的代碼在另一個調度隊列中運行
- 7. 調度程序不排隊作業
- 8. 關於bash中,進程調度和printf()
- 9. 在就緒隊列只有一個進程並使用循環調度的系統中是否發生上下文切換?
- 10. 調度隊列中使用dispatch_semaphore_wait時線程是否餓死?
- 11. 調用另一個進程的Python中
- 12. jQuery的$(文件)。就緒()隊列順序
- 13. 從另一個函數調用jQuery的DOM就緒函數
- 14. Delta隊列 - 嵌入式調度程序
- 15. CFQ IO調度程序請求隊列
- 16. 作業隊列和就緒隊列
- 17. jQuery多文檔就緒隊列順序
- 18. 是否有取消另一個調度隊列中的塊的模式?
- 19. 從另一個線程調用CFRunLoopStop是否安全?
- 20. Linux進程調度程序 - 它們自己是否使用CPU?
- 21. 調度隊列和排隊的NSOperation
- 22. Linux進程調度程序
- 23. cocos2d調度方法是否在另一個線程中運行?
- 24. 調度程序排序
- 25. 如何從java程序中調用另一個java進程
- 26. 進程調度程序和線程調度程序
- 27. nodyn是否將node.js作爲另一個進程調用?
- 28. 在非事件調度線程中調用fireTableRowsUpdated()是否安全?
- 29. 在同時運行的線程中調用printf是否線程安全?
- 30. mysql調用另一個程序(另一個模式)從程序
短期調度程序(也稱爲CPU調度程序)決定在時鐘中斷,I/O中斷,操作系統調用後要執行哪些就緒內存中進程(分配CPU)或另一種形式的信號 – sumanth232