هل يمكنني مزج Mutexes القائم على Futex مع Glibc-2.2 LinuxThreads Mutexes؟

StackOverflow https://stackoverflow.com/questions/2239191

  •  19-09-2019
  •  | 
  •  

سؤال

إذا كنت لا تعرف ما هو Futex و LinuxThreads-0.9، من فضلك، لا ترد.

هل يمكنني المزيج في برنامج واحد في برنامج MUTEX القائم على Futex مع Mutex من LinuxThreads-0.8 أو -0.9 (الذي تم استخدامه في جميع Glibc <= 2.2 وفي جميع UCLIBC)؟

أحتاج إلى interxessemess mutex (pshared one، pthread_process_shared).

لذلك، إذا بدأت المواضيع وإدارتها بواسطة LinuxThreads Pthread_manager، هل سيتم الخلط بينها من قبل النوم المستند إلى Futex ويقظ؟

هل يمكنني استخدام Mutexes المستندة إلى Futex على حد سواء للمزامنة المشتركة بين العملية والمعالجة بين الموضوعات؟

هل كانت مفيدة؟

المحلول

لا أرى لماذا لا تستطيع ذلك.

لن تكون قادرا على استخدام Pthreads، من الواضح. من المحتمل أنك ستستخدم مكتبة Pthread مع Mutexes القديمة وستحتاج إلى الحصول على رمز Futex في بعض المكتبة الأخرى.

من الواضح أنك لا تستطيع قفل LinuxThreads Mutex وإلغاء تأمينه باستخدام وظيفة Futex، وهذا لن يعمل أبدا.

ولكن إذا تم حظر مؤشر ترابط واحد في النواة في انتظار Futex، فأنا لا أرى كيف يتم حظرها على تشغيل القرص I / O، ومقابض LinuxThreads جيدا بما فيه الكفاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top