Justified Universities Online Association

انجمن اینترنتی دانشگاه‌های هم‌تراز در رشته‌های نرم‌افزار و IT

Justified Universities Online Association

انجمن اینترنتی دانشگاه‌های هم‌تراز در رشته‌های نرم‌افزار و IT

درباره Threading در برنامه‌نویسی


مکانیسم نخ‌کشی (Threading) در برنامه‌نویسی روشی است برای به پیش بردن همزمان (Multi-Task) چندین فرآیند مشابه و یا مرتبط بدون آنکه لزوماً نیاز به فراخوانی‌های متعدد و یا ترتیبی از آن فرآیندها مطرح باشد. همچنین هنگامیکه مدیریت موقعیت‌های خاص زمانی در اجرای برنامه ضرورت دارد استفاده از Threadها توسط برنامه‌نویسان در دستور کار قرار می‌گیرد. به طور کلی  دو وضعیت کاری در توسعه برنامه نیاز به نخ‌کشی دارد: 
1- زمانی که مدیریت  زمانی کارها در توسعه کلاس برنامه‌نویسی ضرورت دارد: در اینجا یک راه‌حل خوب پیاده‌سازی واسط Runnable در تعریف کلاس برنامه‌نویسی است تا با دسترسی به متدهایی که برای کار با Thread به آنها نیاز است، بتوان برنامه‌نویسی در سطح کلاس انجام داد. شکل سمت چپ نمونه ای از این پیاده‌سازی را نشان می‌دهد.
2- هنگامیکه کلاس برنامه‌نویسی قرار است مدیریت زمانی را برای اجزای دیگری مدیریت نماید.  در این وضعیت می‌توان مستقیماً از کلاس Thread نمونه‌سازی انجام داده و از نمونه ایجاد شده برای زمان‌بندی کارهای اشیای دیگر بهره برد. شکل سمت راست نمونه ای از این پیاده‌سازی را نشان می‌دهد. (برای نمایش تصویر با وضوح بیشتر اینجا و یا روی تصویر کلیک نمایید).


هر Thread از لحظه ایجاد تا به انتها رسیدن چرخه حیات مشخصی را طی می‌نماید. در نسخه‌های پیشین Java برنامه‌نویسان امکان کنترل این چرخه حیات را به صورت دستی دارا بودند. اما از آنجا که مدیریت زمانی برنامه‌ها در عملکرد کلی JVM تأثیرگذار است؛ امروزه استفاده از همه متدهای کار با Thread توصیه نمی‌شود. شکل بعدی چرخه حیات یک Thread را از لحظه ایجاد در سیستم تا به انتها رسیدن به نمایش می‌گذارد