POSIX'in mutex
, Win32'un CRITICAL_SECTION
ile eşdeğerdir - kapsamı tek bir işlemle sınırlıdır. Win32'un mutex (Aslında NT arazisinde "mutant" olarak adlandırılır) çapraz süreç kilitleme mekanizması olarak hizmet eder. Çapraz süreç kilitleri için pthreads 'eşdeğeri nedir?POSIX'in Win32's Mutex'ine eşdeğer nedir?
cevap
O PTHREAD_PROCESS_SHARED ayarlanmış bir pshared özelliğiyle bir pthread_mutex_t bu. Ancak, böyle bir muteksin paylaşımlı belleğe yerleştirilmesinden siz sorumlusunuz, tüm süreçlerin erişebileceği - bu yüzden win32 API'si kadar basit değil.
Belki de win32'ye bir posix veya sysv semaphore daha yakındır. Geleneksel olarak, işlemler arasında senkronizasyon da, örneğin, dosya kilitleri kullanılarak gerçekleştirilmiştir. flock veya lockf (bu ses hiçbir zaman çalmayacağı kadar yavaş değildir)
Kapsam sadece thread için geçerli değil mi? Sadece pthread_attr_t' işlevini pthread_create’e geçirebilirsiniz. Pthread_mutex_tr ile 'pthread_mutex_tr 'seçeneğini kullanmanız gerekir. –
Haklısınız, pthread_mutexattr'ın pshared'i – nos
'a ihtiyaç duyuyorsunuz Kilitlerin yavaşlığı (veya eksikliği) ile ilgili bir bağlantınız var mı? Daha fazla detay aradım ama ilginç bir şey bulamadım. Büyük paylaşımlı dosyaları olan büyük bir projemiz var ve kilitler yüzünden performans sorunları yaşadığımızdan şüpheleniyorum, ama nasıl öğreneceğimize dair hiçbir fikrim yok. –
IPC'yi işlemler arası işlemler için kullanmalısınız: borular, semaforlar, ileti sıraları veya paylaşılan bellek. Sanırım isminizdeki semaforlar iyi olurdu. Daha fazla bilgi için:
man 7 sem_overview
Paylaşılan belleği kullanmak istiyorum. Ancak yine de paylaşılan hafızada kilitleri gerçekleştirmenin bir yolu olmalı. –
sem_init(), paylaşılan bellekte kilitler gerçekleştirmek için kullanılabilir. –
Bu işe yaramaz semafor şeyleri unutun. Paylaşılan bir bellek nesnesi oluşturun ve ardından pshared muteks oluşturun. –
- 1. Javascript'te "has_key" ile eşdeğer nedir?
- 2. jQuery offsetHeight öğesine eşdeğer nedir?
- 3. Python'da 'gem' için eşdeğer nedir?
- 4. pyspark scala.util.Try ile eşdeğer nedir?
- 5. Linux üzerinde birbirine eşdeğer eşdeğer
- 6. Winst içinde SecureString için eşdeğer nedir?
- 7. C# 'nun Haskell'in yeni tipine eşdeğer nedir?
- 8. Swift ile NSParameterAssert arasındaki eşdeğer nedir?
- 9. LINQ-to-XML'de InnerText'e eşdeğer nedir?
- 10. Ruby, Python'un çoklu işlem modülüne eşdeğer nedir?
- 11. Java Webdriver @Findby eşdeğer C# sürümü nedir?
- 12. masmavi bir pencere hizmeti eşdeğer nedir?
- 13. C# VB.NET eşdeğer anahtar kelime "dir" nedir?
- 14. ASP.NET'teki CRON işlerine eşdeğer nedir? - C#
- 15. LaTeX \ texttt'e eşdeğer R işareti nedir?
- 16. Scala eşdeğer
- 17. Eşdeğer urllib.parse.quote() 2,7
- 18. GUI için çarşı, eşdeğer
- 19. uniqueidentifier Eşdeğer DataType C#
- 20. Başh içinde Perl listelerine iyi bir eşdeğer nedir? perl birinde
- 21. RStudio'nun Örgü HTML'sine eşdeğer düzgün bir komut satırı nedir?
- 22. stringByEvaluatingJavascriptFromString (iOS yöntemi, Android eşdeğer nedir?) Bir iOS uygulamasında
- 23. android için eşdeğer kod nedir: layout_above = "@ android: id/tabs"?
- 24. Java's Thread.sleep() Objective-C/Cocoa ile eşdeğer nedir?
- 25. Android'de bir Session/Cookie değişkenine en yakın eşdeğer nedir?
- 26. Oracle'ın CONNECT BY ... START WITH? Ile eşdeğer PostgreSQL sözdizimi nedir?
- 27. x: Bind kullanırken UpdateSourceTrigger = PropertyChanged ile eşdeğer nedir?
- 28. Haskell eşdeğer
- 29. Eşdeğer C#
- 30. Python eşdeğer
'CRITICAL_SECTION' pthread_spinlock_t''ye daha yakın, mutex' WaitForSingleObject'/'ReleaseMutex' vs.' pthread_mutex_t' olacaktır. –
@ Steve-o: Bu ikisi arasındaki fark nedir? Benim (sınırlı da olsa) benim anlayışım için, bir kritik bölüm ile bir muteks arasındaki tek fark, birinin tek bir süreç içinde olması, diğerinin ise çapraz süreç olmasıdır. Daha sonra posix spinlock ve posix mutex arasındaki fark nedir? –
@Billy: Bu cevap yardımcı olabilir, spinlocks meşgul beklemek, mutekses verim http://stackoverflow.com/questions/195853/spinlock-versus-semaphore –