كيف يمكنني تنفيذ مزامنة (شاشات) تشبه جافا باستخدام Win32 API؟

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

سؤال

يحتوي كل كائن Java (وفئته) على شاشة مرتبطة به.في مصطلحات pthread، تعادل شاشة Java مزيجًا من كائن المزامنة المعاد إدخاله ومتغير الشرط.

للقفل، توفر Win32 API كائنات Mutex (التي يتم إعادة دخولها ولكنها ثقيلة الوزن) والأقسام المهمة (وهي غير قابلة لإعادة الدخول ولكنها خفيفة الوزن).كما أنه يوفر بنيات مزامنة أخرى مثل الإشارات والأحداث ولكن ليس لديه مفهوم واضح لمتغير الشرط.

إذا كنت أكتب JVM، فكيف يمكنني استخدام مفاهيم Win32 هذه لتنفيذ شاشات Java؟

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

نصائح أخرى

ويندوز لديها SignalObjectAndWait () والتي يمكن استخدامها تشبه إلى حد كبير الانتظار على متغير حالة في الشاشة. يمكنك استخدام الحدث (أي إعادة تعيين) والمزامنة ثم استخدام PulseEvent () للقيام بما يعادل يشير المتغير حالة.

وأقترح عليك أن نلقي نظرة على OpenJDK مصدر لمعرفة كيف تم تنفيذ ReentrantLock الصف.

و(أنا لم فحص نفسي لذلك أنا لست متأكدا من الإجابة).

وتنفذ الأقفال util.concurrent باستخدام API الأصلي.

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