آیا توابع مربوط بهMSMQ نظیرMQReceiveMessage و MQSendMessage و دیگر توابع موجود در فایل mq.h قابل استفاده در Thread ها هستند بعبارتی Threadsafe هستند.
Printable View
آیا توابع مربوط بهMSMQ نظیرMQReceiveMessage و MQSendMessage و دیگر توابع موجود در فایل mq.h قابل استفاده در Thread ها هستند بعبارتی Threadsafe هستند.
با استفاده از این توابع می توان بین چند پردازه تو یک کامپیوتر ویا در کامپیوترهای ریموت شده به تبادل پیغام پرداخت که کاربردهایی زیادی هم داره البته فقط در ویندوز ...
بنابراین thread safety بودن اصولا نمی تونه نیاز باشه! یعنی شما داده ای ندارید که بخواهید در یک پردازش در چند نخ باهم سر استفاده از منابع به رقابت بپردازند چون همونطور که عرض کردم با استفاده از این توابع شما بین چند پردازه مختلف در حال انتقال داده هستید قطعا نمی تونه race condition رخ بده علتش هم که خوب کاملا واضح هست هر پردازه توسط سیستم عامل کنترل میشه و منابع خودش را داره!
بنابراین استفاده از این توابع در یک پردازه بین چند نخ معنی نداره! که بخواهد thread safe هم باشند!
با تشکر
توابع گفته شده از هندل QUEUEHANDLE که یک پوینتر است که توسط تابع MQOpenQueue مقدار دهی میشود استفاده می شود.
حال اگر ما یک بار به این هندل را مقدار دهی کنیم و از آن در تردهای مختلف استفاده کنیم مشکلی ایجاد می کند یا نه.
نمی خواهم در هر ترد از MQOpenQueue استفاده کنم.