زبان شل یکی از زبان های سطح بالا و در عین حال کاربردی محسوب میشه ، اما این زبان تعدادی محدودیت داره که واقعا ازار دهنده هستند . یکی از محدود های بزرگ این زبان تک رشته ای بودن اون هست . یعنی اینکه در یک لحظه فقط یک کار میتونه انجام بشه . این محدودیت چهار ضعف بزرگ رو در شل ایجاد میکنه :
۱- عدم بهینگی برای پردازنده های چند هسته ای
۲- عدم اجازه انجام کاری در پس زمینه ی یک کار دیگه
۳- سرعت پایین و فشار کم به CPU
۴- عدم ساپورت مولتی تسکینگ
به یک مثال بیشتر براتون توضیح میدم . فرض کنید یک اسکریپت نوشتید که دارای یک منو هست . همزمان قصد دارید اهنگی رو در پس زمینه پخش کنید تا کاربر از کار با اسکریپت شما لذت ببره . در حالت عادی این کار ممکن نیست . چرا که شما تا پایان اهنگ نمیتونید کاری انجام بدید . یا فرض کنید اسکریپتی نوشتید که یک عملیات ( به عنوان مثال کپی ) رو انجام میده ، هم زمان قصد دارید میزان پیشرفت این پروسس رو به کاربر نشون بدید . برای اینکار باید در کنار پروسس اصلی یک برنامه میزان خروجی رو انالیز بکنه . در حالت عادی انجام این کار غیر ممکن هست ! شما فقط میتونید یک رشته داشته باشید
پروژه ی Shell Multi Threading برای باز کردن دروازه ی مولتی تسکینگ در شل شروع شد . پس از یک روز کدنویسی این پروژه در حدی هست که به صورت عمومی منتشر بشه . در صورت اینکه استقبال بشه این پروژه ادامه پیدا میکنه .
پروژه ی Shell Multi Threading به شما اجازه میده در اسکریپتتون بی نهایت کار رو همزمان انجام بدید و در واقع محدودیت زبان شل در مولتی تسکینگ رو نابود کنید ، برنامه هاتون رو برای سی پی یو های چند هسته ای بهینه کنید و یا به سی پی یو نهایت فشار رو بیارید ! با یک مثال براتون توضیح میدم .
مثال پخش اهنگ در پس زمینه رو میبینید که به راحتی با استفاده از این پروژه ممکن شده :
کد:posix "stagefright -a audio.mp3" "./menu"
طرز استفاده کلی از این پروژه به این شکل هست که ابتدا فایل پروژه رو داخل system/bin و یا bin در صورتی که از لینوکس استفاده میکنید قرار بدید . سپس به این شکل دو کار رو در یک لحظه انجام بدید :
بجای command1 و ۲ میتونید دستور دلخواهتون رو بزاریدکد:posix "command1" "command2"
در حالت معمولی فقط ۲ تا پروسس به صورت همزمان میتونید داشته باشید اما با ترفند کوچکی میتونید بی نهایت پروسس بکار :
این پروژه رایگان نیست ولی در پرداخت اجباری نیست .کد:posix 'posix "command1" "command2"' 'posix "command3" "command4"'
ابتدا رو گزینه ی حمایت مالی از این پست کلیک کنید و مبلغ دلخواهتون رو انتخاب و پرداخت کنید سپس اپلت رو از لینک زیر دانلود و استفاده کنید :
[فقط کاربران ثبت نام شده قادر به مشاهده لینکها هستند . ]
امیدوارم برای برنامه نویسان شل مفید باشه
استفاده ی این اپلت در صورت خرید ، فقط برای پروژه های رایگان و غیر تجاری با دادن Credit ازاد هست .
موضوعات مشابه:
بوک مارک ها