POSIX mutex
эквивалентен CRITICAL_SECTION
от Win32 - его объем ограничен одним процессом. Мутекс Win32 (фактически называемый «мутантом» в земле NT) служит механизмом блокировки перекрестного процесса. Что такое эквивалент pthreads для перекрестных процессов?Что такое эквивалент POSIX для Mutex Win32?
ответ
Это pthread_mutex_t с атрибутом pshared равным PTHREAD_PROCESS_SHARED. Тем не менее, вы несете ответственность за размещение такого мьютекса в общей памяти, что все процессы могут получить доступ - так что это не так просто, как win32 api.
Возможно, ближе к win32 находится posix или семафор sysv. Традиционно синхронизация между процессами также выполнялась с использованием блокировок файлов, например. стадо или lockf (это никоим образом не так медленно, как это может показаться)
Не распространяется ли область на темы? Вы можете передать только 'pthread_attr_t' в' pthread_create'. Вам нужно использовать 'pthread_mutexattr_t' с' pthread_mutex_init'. –
Вы правы, это pshared of pthread_mutexattr вам понадобится – nos
У вас есть ссылка на медленность (или отсутствие таковой) замков? Я искал более подробную информацию об этом, но не нашел ничего интересного. У нас большой проект с большими файлами, и я подозреваю, что у нас есть проблемы с производительностью из-за блокировок, но я понятия не имею, как это выяснить. –
Вы должны использовать IPC для операций кросс-процесса: каналы, семафоры, очереди сообщений или разделяемую память. Я думаю, что в вашем случае названные семафоры будут в порядке. Для получения дополнительной информации:
man 7 sem_overview
Я хочу использовать общую память. Но все же должен быть способ выполнить блокировки в этой общей памяти. –
sem_init() может использоваться для выполнения блокировок в общей памяти. –
Забудьте об этом бесполезном семафоре. Создайте объект общей памяти, а затем создайте в нем мьютекс pshared. –
- 1. Что такое эквивалент win32 для mac?
- 2. эквивалент Linux/POSIX для CreateEvent Win32, SetEvent, WaitForSingleObject
- 3. POSIX SHARED - RECURSIVE Mutex
- 4. Posix Threads with Mutex
- 5. Что такое POSIX оболочки эквивалент Баш <<<
- 6. Что такое эквивалент Linux/POSIX VirtualAlloc с MEM_TOP_DOWN?
- 7. Что такое правильный синтаксис для Mutex
- 8. Win32 Mutex не ждет
- 9. Что такое эквивалент насоса сообщений Win32 в Linux?
- 10. Что такое регулярное выражение posix для rm *?
- 11. Что такое соответствие posix для файловой системы?
- 12. ПРОГРАММА POSIX C (ПРОГРАММА MUTEX)
- 13. Что такое эквивалент Javascript для $()?
- 14. Что такое эквивалент C# для MsgWaitForMultipleObjects?
- 15. Что такое эквивалент mysqli?
- 16. Что такое эквивалент ржавчины Python os.pathsep?
- 17. Что такое параметрический эквивалент?
- 18. Что такое эквивалент ereg()
- 19. Что такое linux-эквивалент sys.getwindowsversion()
- 20. Активация win32 mutex в java
- 21. Что такое эквивалент UpdateSystemActivity на окнах
- 22. Posix evtsuspend эквивалент
- 23. Posix Thread - (mutex and condition variable) issue,
- 24. Win32 Critical Section vs Mutex Performance
- 25. Что такое POSIX? Какими стандартами они являются?
- 26. Что такое эквивалент Mac AVAudioPlayer?
- 27. Что такое «Перенести» эквивалент для Java
- 28. Что такое эквивалент C++ для PHP is_dir()?
- 29. Что такое эквивалент webdriver для assertconfirmation?
- 30. Что такое эквивалент Varchar (Max) для DB2?
'CRITICAL_SECTION' ближе к' pthread_spinlock_t', мьютекс будет 'WaitForSingleObject' /' 'ReleaseMutex' против pthread_mutex_t'. –
@ Steve-o: В чем разница между этими двумя? К моему (хотя и ограниченному) пониманию единственная разница между критическим разделом и мьютексом заключается в том, что он находится в рамках одного процесса, а другой - кросс-процесс. В чем же тогда разница между спин-блокисом posix и мьютексом posix? –
@Billy: этот ответ может помочь, спрятаны ожидание-ожидание, выход из мьютекса http://stackoverflow.com/questions/195853/spinlock-versus-semaphore –