شرایط رقابتی و قفل بین‌پروسه‌ای در PHP

[این مقاله در سطح «پیشرفته» و نیازمند آشنایی خواننده با زبان PHP و نرم‌افزار Redis و مفاهیم «شرایط رقابتی» و «Shared Object» است.] کنترل دسترسی چند پروسه به منابع مشترک یا shared object ها از مسائلی است که روزانه در زندگی واقعی برنامه‌نویسان رخ می‌دهد. مدیریت این گونه از مسائل اهمیت بسیار زیادی در پیاده‌سازی نرم‌افزارها و سرویس‌های توزیع‌شده دارد. پیامد مدیریت…

Continue Reading

چطور یک Thread Pool بسازیم!

[این مقاله در سطح «متوسط» و نیازمند آشنایی خواننده با مفهوم «پردازش موازی» و زبان برنامه‌سازی «++C» است.] در پیاده‌سازی سرویس‌دهنده‌ها موارد بسیاری وجود دارد که در آن نیازمند پردازش درخواست‌های کوچک اما متعدد هستیم. برای درک بهتر مسأله یک شعبه‌ی بانک یا یک باجه‌ی فروش بلیت را در نظر بگیرید. در مثال شعبه‌ی بانک، تعداد مراجعان در طول یک روز غالباً…

Continue Reading

داده‌ساختارهای بدون قفل

padlock from bloodykissatnight.deviantart.com

[مطالبی که در ادامه می‌آید در سطح پیشرفته و نیازمند آشنایی خواننده با مفهوم «چندریسگی» و زبان برنامه‌سازی «سی پلاس پلاس» است.] امروزه، کمتر کسی هست که در برنامه‌نویسی، اصطلاحات «پردازش چندریسه۱» یا «پردازش موازی۲» به گوشش نخورده باشد. پس از بازار داغ رقابت تولیدکننده‌های پردازنده برای افزایش سرعت پردازش تولیداتشان، در یک دهه‌ی اخیر این رقابت به تولید پردازنده‌هایی…

Continue Reading