رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران

سوال

با سلام

می‌خواستم دوستان نظر خود را در باره مقایسه std::mutex  و Windows Mutex بیان کنند تا از تجربیات آنها استفاده کنیم.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تا کنون داده شده است

پست های پیشنهاد شده

  • 0
در 2 ساعت قبل، فرهاد شیری گفته است :

std::mutex که مشخص جز استانداردهای زبان سی پلاس پلاس هست که از نسخه 11 به بعد قابل استفاده است.

Windows Mutex هم که جز توابع سیستمی ویندوز windows api32 هست 

کار هر دو مشترک هست، برای اشتراک گذاری داده در ناحیه بحرانی استفاده میشوند، منتهی به شرایط استفاده برنامه شما بستگی داره! مثلا اگر در سطح سیستمی تو ویندوز کد میزنید و پرفورمنس بالا مد نظرتون هست قطعا ویندوز API ها حرف اول را میزنند چرا چون این اینترفیس ها مستقیما با زبان سی نوشته شده اند، و مستقیما در کد اسمبلی کتابخانه استفاده شده اند بنابراین از لحاظ کارایی خیلی بالا هستند. 

ولی اگر این حد از سیستمی بودن مدنظرتون نیست قطعا کتابخانه استاندارد سی پلاس پلاس خیلی مفیدتر و نگهداری و همچنین پرتابلیتی (قابلیت حمل) بالاتری هم نسبت به API های ویندوز داره!

و البته معمولا در برنامه های Win32 بیشتر تمایل هست که از اینترفیس های قدرتمند API32 استفاده بشه! چون خیلی بیشتر تو ویندوز کارایی دارند.

قطعا همواره یکی از موارد پرفورمنس هست. یکی از دوستان بیان کرده بود جایی اقدام به مقایسه استفاده از این دو کرده و کارآیی std::mutex را بیشتر دیده بود. که این مورد برای خودم سوال بود لذا اقدام به تست کردم و دیدم از نظرزمانی اختلاف زیادی با هم ندارند و ضمنا Windows Mutex سریعتر است. 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 3 ساعت قبل، فرهاد شیری گفته است :

قطعا اون دوستتون در نوشتن الگوریتم های همزمانی دچار اشکال بوده!

درود بر شما؛ یکی از دوستانی که این حرف رو هم تأیید می‌کنه آقای Anthony Williams (نویسندهٔ کتاب C++ Concurrency in Action و Maintainer کتابخانهٔ Boost.Thread) هست که در صفحهٔ ۱۲اُم به بعد از کتابشون در این مورد توضیحات لازم رو دادند که هزینهٔ استفاده از std::thread چقدر هست و فکر نمی‌کنم که دیگه ایشون در نوشتن الگوریتم چندان مشکلی داشته باشند.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو ملحق شوید

شما همین الآن می‌توانید مطلبی را ارسال و بعداً ثبت‌نام کنید. اگر حساب کاربری دارید، و با حساب کاربری خود مطلب ارسال کنید.
نکته: مطلب شما قبل از انتشار نیاز به بازبینی توسط میانجی‌گر‌ها دارد.

مهمان
پاسخ به این سوال ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...