هل من الممكن استخدام مواضيع منفصلة للقراءة والكتابة مع Boost.asio؟

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

سؤال

وفقا لتعزيز توثيق, ، الحصول على مكالمة متعددة المواضيع io_service::run() يقوم بإعداد مجموعة من الخيوط التي يمكن أن تستخدمها خدمة IO لأداء المهام غير المتزامنة. تنص صراحة على أن جميع المواضيع التي انضمت إلى حمام السباحة تعتبر مكافئة.

هل هذا يعني أنه من الممكن أن يكون لديك موضوع منفصل للقراءة من المقبس وواحد منفصل للكتابة؟ إذا كان ذلك ممكنا، كيف يمكنني تنفيذ هذا؟

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

المحلول

أي موضوع يستدعي io_service::run() يمكن استخدامها لاستدعاء معالجات غير متزامنة. ولكن لا يمكنك تحديد مؤشر الترابط الذي ينفذ أي نوع من أنواع التشغيل. على سبيل المثال، إذا اتصلت IO_SERVICE :: RUN () في خيوط خلفية 2، وكانت الاتصال بالاتصال socket::async_send و socket::async_receive في مؤشر ترابط رئيسي، سيتم تنفيذ معالجاتك في أي مؤشر ترابط خلفية متوفر حاليا. لذلك نعم، تعتبر جميع المواضيع بشكل أساسي معادل، ويمكن استخدامها لأي عملية غير متزامنة.

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