我試圖在Python中使用threading
模塊。現在我對這個模塊支持的線程類型有這個查詢。那就是這些線程是用戶空間線程還是內核空間線程Python線程模塊創建用戶空間線程或內核特殊線程
回答
簡答案用戶空間線程。 根據我對系統知識的回答,一個進程(或線程)不是用戶級別或內核級別。
某些關鍵任務不能由用戶直接訪問,例如內存和IO。要使用這些resources
,內核將會公開API's
。 這些API最好稱爲system calls
。 所以你的線程可能會在你的程序中使用那些system calls
。但是你不能只產卵內核線程
,正確的說法是不內核空間線程(因爲Python沒有訪問內核內存空間),但內核級線程。 threading
模塊使用系統提供的機制(如POSIX系統上的pthread
),通常依靠內核接口(通過Linux上的clone(CLONE_THREAD)
創建任務)。
Python支持用戶級線程(那些純粹在解釋器中實現並且只佔用一個內核級線程的線程)通過生成器,greenlet和類似的庫。
這意味着不同於pthread(它創建內核空間線程),Python線程模塊爲我們提供了用戶空間線程 – user3282758
@ user3282758:'線程'很有可能在引擎蓋下使用'pthread'。 – myaut
如果在引擎蓋下使用pthread,那我們爲什麼不把它們稱爲內核空間線程 – user3282758
- 1. Java或C#的線程基於用戶空間線程或內核空間線程?
- 2. 用戶線程v.s.內核線程
- 3. 在用戶空間或內核空間中創建Java線程嗎?
- 4. 使用`pthread_create`創建一個用戶級線程或內核級線程?
- 5. 的Linux用戶空間線程,內核線程,輕量級進程
- 6. Java線程和POSIX線程,用戶或內核級別?
- 7. Python中的線程與線程模塊
- 8. 由於所有用戶線程都映射到內核線程,用戶線程以內核模式運行?
- 9. Python線程模塊
- 10. 使用kernel_thread創建內核線程
- 11. 用戶空間和內核線程之間的共享內存
- 12. Linux內核模塊中的內核線程之間的通信
- 13. 進程vs線程(用戶vs內核)
- 14. 用戶空間線程庫
- 15. 從內核線程爲用戶空間分配內存
- 16. Python中的線程 - 線程或進程?
- 17. 用戶級別線程內核級線程和光纖
- 18. 在內核線程上映射時用戶線程資源
- 19. 更喜歡用戶線程而不是內核線程
- 20. 內核線程和用戶線程有什麼區別?
- 21. 用戶線程與內核線程的多對一映射
- 22. 學習Python線程模塊
- 23. Python線程管理模塊
- 24. Python的線程模塊
- 25. 線程vs內核
- 26. 線程和內核
- 27. 如何使用mmap共享用戶空間和內核線程
- 28. Python子線程塊父線程
- 29. Python多線程 - 主線程塊socket.connect
- 30. 使用線程和隊列模塊的Python中的多線程
如果我使用pthread庫來創建線程,那麼這些線程是不是內核級線程 – user3282758
我還不清楚Python線程模塊在我們創建新的python線程時是否內部使用pthread_create,還是創建用戶級別線程 – user3282758