是信號量的一種IPC機制嗎?是信號量的一種IPC機制嗎?
12
A
回答
2
這取決於操作系統
在Windows命名信號可以使用CreateSemaphore()和OpenSemaphore()進程之間進行訪問的功能
http://msdn.microsoft.com/en-us/library/ms682438%28VS.85%29.aspx
11
是,在很多平臺信號燈可以同步跨進程。您可以使用「命名」信號量 - 多個進程通過名稱訪問對象,與文件系統對象類似。
在POSIX,您可以創建通過sem_open()
命名信號。對於unamed信號量,如果sem_init()
第二個參數是非零值,也可以是間,雖然我不知道一個無名間信號燈究竟應該如何工作。
注意,在某些系統上,如果信號燈間不支持這些功能可能會失敗,ENOSYS
(例如OpenBSD的)。
在Windows中,您可以按@sergiom提到創建命名通過CreateSemaphore()
信號燈。
1
POSIX信號量可以是未命名的或 命名。未命名的信號量在進程內存中分配爲 ,初始化爲 。具體取決於信號是如何 分配和初始化超過一個過程, 未命名信號可能 可用。 [...]
想知道more?
1
實際上信號量是同步的工具,但bcoz它是由超過1個過程
0
IPC有三種不同的用途等的數據交換(消息隊列,PIPE FIFO),同步(文件訪問它被計數爲一個IPC鎖,信號量,MUTEX)和信號。
相關問題
- 1. 使用posix無名信號量的IPC
- 2. C#中的信號量超時機制
- 3. PySide IPC與信號/插槽
- 4. 爲什麼信號量被認爲是IPC?
- 5. IPC機制概念
- 6. 它是實現Qt信號的一種方式嗎?
- 7. 尋找信號量互鎖機制?
- 8. 信號量鎖定排隊機制?
- 9. 使用linux上的信號的IPC
- 10. Celery的類信號機制
- 11. Perl的信號/槽機制
- 12. Java - 信號/插槽機制
- 13. 如何在java中發送ipc信號
- 14. C++ IPC通信
- 15. Qt的信號和插槽是發佈 - 訂閱的一種形式嗎?
- 16. 使用不同的IPC機制
- 17. 什麼是一般信號量範圍?
- 18. 使用二進制信號量作爲計數信號量
- 19. C/C++ for Windows中基於內存的輕量級IPC機制是什麼?
- 20. 什麼是信號量?
- 21. 信號量是否「完整」?
- 22. WCF NamedPipe IPC通信
- 23. Nginx和後端服務器之間的IPC機制是什麼?
- 24. 使用什麼Objective-C IPC機制?
- 25. Android應用程序IPC機制
- 26. 是自定義信號量,它的使用甚至正確嗎?
- 27. html混淆真的是一種有效的反黑客機制嗎?
- 28. 給信號量一個ID
- 29. 什麼是C#等價到Linux的信號機制?
- 30. 函數外面的變量是一種全局變量嗎?
自從版本5.4(2013年11月)以來,OpenBSD [命名爲信號量](http://www.openbsd.org/cgi-bin/man.cgi?query=sem_open&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format= HTML)。參見[這篇博客](http://www.tedunangst.com/flak/post/sem-open-named-semaphores) – user454322 2014-02-07 14:32:29
回覆:「我不知道一個無名間信號燈究竟應該怎樣工作」:您可以將信號置於共享內存中。另外,如果你在普通內存中創建了一個未命名的進程間信號量,然後調用fork(),那麼在父進程和子進程之間就有了IPC。當然,在任何情況下,都不會像命名信號量那樣發現未命名的信號量。但是,無論如何,如果進程之間存在某種其他關係,則通常只需要一個信號量。 – ruakh 2016-07-29 05:40:23