POSIX's mutex
tương đương với Win32's CRITICAL_SECTION
- phạm vi của nó được giới hạn trong một quy trình duy nhất. Win32 của mutex (Trên thực tế được gọi là một "đột biến" trong đất NT) phục vụ như là một cơ chế khóa quá trình chéo. Tương đương pthreads 'cho khóa chéo quá trình là gì?Tương đương với POS32 của WinIX là gì?
Trả lời
Đó là một pthread_mutex_t với một thuộc tính pshared thiết lập để PTHREAD_PROCESS_SHARED. Tuy nhiên, bạn chịu trách nhiệm đặt một mutex như vậy trong bộ nhớ chia sẻ, rằng tất cả các quy trình có thể truy cập - vì vậy nó không đơn giản như win32 api.
Có lẽ gần hơn với win32 là posix hoặc sysv semaphore. Theo truyền thống, đồng bộ hóa giữa các quy trình cũng đã được thực hiện bằng cách sử dụng khóa tệp, ví dụ: bầy hoặc lockf (điều này không hề chậm đến mức có thể)
Phạm vi không chỉ áp dụng cho chủ đề? Bạn chỉ có thể chuyển 'pthread_attr_t' sang' pthread_create'. Bạn cần sử dụng 'pthread_mutexattr_t' với' pthread_mutex_init'. –
Bạn nói đúng, đó là sự chia sẻ của pthread_mutexattr bạn sẽ cần – nos
Bạn có một liên kết về sự chậm trễ (hoặc thiếu nó) của ổ khóa? Tôi đã tìm kiếm thêm chi tiết về điều đó nhưng không tìm thấy điều gì thú vị. Chúng tôi có một dự án lớn với các tệp được chia sẻ lớn và tôi nghi ngờ chúng tôi có một số vấn đề về hiệu suất vì các khóa, nhưng tôi không biết làm thế nào để tìm hiểu. –
Bạn nên sử dụng IPC cho các thao tác xử lý chéo: đường ống, semaphores, hàng đợi tin nhắn hoặc bộ nhớ dùng chung. Tôi nghĩ rằng trong trường hợp của bạn có tên là semaphores sẽ là tốt. Để biết thêm thông tin:
man 7 sem_overview
Tôi muốn sử dụng bộ nhớ dùng chung. Nhưng vẫn cần phải có một cách để thực hiện khóa trên bộ nhớ chia sẻ đó. –
sem_init() có thể được sử dụng để thực hiện khóa trên bộ nhớ dùng chung. –
Hãy quên đi công cụ semaphore vô ích này. Tạo một đối tượng bộ nhớ chia sẻ và sau đó tạo ra một mutex chia sẻ trong nó. –
- 1. Tương đương GWT của setTimeout là gì?
- 2. Python tương đương với Perlbrew là gì?
- 3. Tương đương C# của MsgWaitForMultipleObjects là gì?
- 4. WPF tương đương với ControlPaint.Light là gì?
- 5. Tương đương .NET của JMX là gì?
- 6. Scala tương đương với ClassName.class của Java là gì?
- 7. Python tương đương với DBI của Perl là gì?
- 8. Tương đương với C# của java.util.regex là gì?
- 9. tương đương với = ~ của ruby trong php là gì?
- 10. Tương đương với C++ của UINT32_MAX là gì?
- 11. Scala tương đương với khối tĩnh của Java là gì?
- 12. Tương đương với preg_quote của PHP là gì?
- 13. Tương đương với Ruby cho StringReader của Java là gì?
- 14. Tương đương java với String.fromCharCode của javascript là gì?
- 15. Python tương đương với "kiểm tra" của Ruby là gì?
- 16. Tương đương với InfiniteIterator của PHP trong .NET là gì?
- 17. C# tương đương với dynamic_cast của C++ là gì?
- 18. PHP tương đương với UNHEX của MySQL() là gì?
- 19. Tương đương với JavaScript của C# Server.URLEncode là gì?
- 20. Tương đương với argv [0] của Go là gì?
- 21. JavaScript tương đương với "kiểm tra" của Ruby là gì?
- 22. C# tương đương với isInstance của Java() là gì?
- 23. Solaris tương đương với 'đuôi -n100' của BSD là gì?
- 24. Tương đương với Html.fromHtml() của Android trong iOS là gì?
- 25. C# tương đương với "self ::" của PHP là gì?
- 26. ASP.Net tương đương với Echo của PHP là gì?
- 27. Tương đương với JavaScript của preg_match là gì?
- 28. Tương đương với System.out.println() của Java trong Javascript là gì?
- 29. Tương đương với setTimeout của JavaScript trên qtScript là gì?
- 30. Groovy tương đương với dir của Python() là gì?
'CRITICAL_SECTION' gần hơn với' pthread_spinlock_t', mutex sẽ là 'WaitForSingleObject' /' ReleaseMutex' so với 'pthread_mutex_t'. –
@ Steve-o: Sự khác nhau giữa hai điều đó là gì? Theo sự hiểu biết của tôi (mặc dù có giới hạn), sự khác biệt duy nhất giữa một phần quan trọng và một mutex là một trong số đó nằm trong một tiến trình duy nhất, trong khi quy trình kia là cross-process. Vậy thì sự khác biệt giữa spinlock posix và mutix posix là gì? –
@Billy: Câu trả lời này có thể giúp, các vòng xoay bận rộn chờ đợi, hiệu suất mutexes http://stackoverflow.com/questions/195853/spinlock-versus-semaphore –