سی++ نکات مربوط به پرفورمنس در برنامهنویسی Concurrent در این پست، چند نکته و مفهوم کوتاه و ابتدایی که میتونن روی پرفورمنس نرمافزارمون تاثیر بذارن و باید بهشون توجه کنیم رو به شکل سطحی بررسی میکنیم
سی++ نکات مهم پیادهسازی یک ساختمان دادهٔ lock-free برای طراحی یک ساختمان دادهٔ lock-free حواسمون باید به چیا باشه؟ چه نکاتی رو رعایت کنیم خوبه؟
سی++ پیادهسازی یک پشتهٔ Lock-Free - قسمت دوم: اشارهگرهای خطری در این پست، سعی کردیم مدیریت حافظهٔ ساختماندادهای که نوشتیم رو با استفاده از Hazard Pointer ها انجام بدیم.
سی++ پیادهسازی یک پشتهٔ Lock-Free - قسمت اول در این پست(و احتمالا پست بعدی) راجع به پیادهسازی کردن یک Stack به شکل lock-free صحبت میکنیم.
سی++ مقدمهای بر ساختماندادههای Lock-Free در این پست راجع به چیستی و چراییِ ساختماندادههای Lock Free صحبت میکنم و باهمدیگه ویژگیهای این ساختماندادهها رو بررسی میکنیم.
سی++ مباحث پیچیدهتر در memory ordering حالا که مباحث ابتدایی ترتیبهای حافظه (memory ordering) رو باهم دیدیم، وقت اینه که یکم مسائل پیچیدهتری رو بررسی کنیم.
سی++ مسئله وابستگی داده در Acquire-Release مدل memory_order_consume و وابستگی دادهها در acquire-release
سی++ رابطهٔ ترایایی همگامسازی در Acquire-Release چطور از خاصیت تعدی در عملیاتهای اتمیک استفاده کنیم؟
سی++ ترتیبهای حافظه در عملیاتهای اتمیک سی++ توی این پست درباره اینکه چطور میتونیم ترتیبهای مدنظر خودمون رو برای عملیاتها اعمال کنیم صحبت میکنیم و تفاوت ترتیبهای مختلف حافظهای رو توی کدهای مختلف بررسی میکنیم.
سی++ روابط مدل حافظه در سی++ در این پست راجع به روابط موجود در مدل حافظهای سی++ (C++ Memory Model Relations) صحبت میکنیم. بهنظرم مبحث نسبتا گنگ و سختی بود، ولی بهرحال برای فهم ترتیب بین عملیاتها و Memory Modelهای مختلف، نیاز هست که این مبحث رو خوب بلد باشیم.
سی++ memory model در سی++ این فصل درباره مدل حافظه یا Memory Model در سی++ هست. البته این فصل که نه، منظورم این زیرفصل هست. کلیت فصل درباره مدل حافظه و عملیاتهای اتمیک است. از مدل حافظه شروع میکنیم
سی++ همروندی با پارادایم CSP توی پست قبل دربارهٔ برنامهنویسی تابعی به عنوان یک راه برای اجتناب از دادههای مشترک و mutable صحبت کردیم. توی این پست میخوام دربارهٔ یک پارادایم دیگه صحبت کنم: Communicating Sequential Processes یا CSP
سی++ همزمانی در سی++(۵): جایگزین های mutex آیا همهجا باید از میوتکس استفاده کرد؟ اگر نه، کجا و چطور؟
سی++ همزمانی در سی++(۴): ژانگولر بازی با mutex و کارهای دیگر در این پست درباره اینکه چطور میتونیم یک سری ژانگولر بازی با mutex ها دربیاریم صحبت میکنیم. مثلا چطور میوتکس ها رو بین scope ها جابجا کنیم و ...
سی++ همزمانی در سی++(۳): Dead Lock ها توی این پست میخوایم در مورد مشکلی بحث کنیم که یجورایی برعکس Race condition هست.
سی++ همزمانی در سی++: اشتراک گذاری داده ها(۱) یکی از مزایای استفاده از تِرِد ها(threads) این هست که به ما اجازه این رو میده که یک داده واحد رو بین ترد های مختلف به اشتراک بگذاریم. در این فصل به مشکلات مربوط به اشتراک گذاری داده ها و راهحل های موجود میپردازیم.
سی++ همزمانی در سی++: مفاهیم اولیه بالاخره شروع کردم به خوندن کتاب C++ Concurrency in action نوشته Anthony Williams.
سی++ اشاره گر های هوشمند: shared_ptr توی این پست قراره درباره نوع دیگه ای از اشاره گر های هوشمند بنویسم که برعکس unique_ptr به ما اجازه میده چند شئ بتونن یک حافظه یکسان رو مدیریت کنن.
سی++ اشارهگرهای هوشمند: unique_ptr اشاره گر های هوشمند اومدن تا کار مارو راحت کنن. تا دیگه کمتر ذهن برنامه نویس درگیر امنیت اشاره گر ها و مسائل دیگه باشه.
سی++ ارث بری چندگانه در سی++ سی++ یکی از زبان هاییه که این اجازه رو به ما میده تا کلاسی که نوشتیم چندین کلاس والد داشته باشه یا به عبارت دیگه، قابلیت ارث بری چندگانه یا multiple inheritance رو داره.
سی++ معرفی std::string_view یکی از ویژگی های جالبی که به سی++ ۱۷ اضافه شده، `std::string_view` هست که برای کار با رشته های ثابت خیلی زیاد به کار آدم میاد.
سی++ فصل ۲۲ دایتل: نکات اضافه توی این فصل درمورد struct ها، bit field ها، اوپراتور های بیتی (bitwise) و توابع مربوط به دستکاری رشته های در سی صحبت شده.