ورود

نسخه کامل مشاهده نسخه کامل : حساب کتاب نداشتن در Thread ها



Life24
02-03-2013, 15:37
سلام
من یک برنامه خیلی خیلی ساده با Thread نوشتم فقط برای تست
منتها حساب کتابی نیست
یک دفعه 1 دونه از تابع اول اجرا میکنه 20 تا از تابع دوم
مشکل هست ؟

Msba
02-03-2013, 16:57
کاملا طبیعی است.
احتمالا روی یک PC دیگه امتحان کنید 10 بار اولی و 5 بار دومی اجرا شود!:n02::n02:
هیچ چیز تعریف نکردید که تعیین کنه که سیستم عامل باید چطوری Thread های شما را هندل کنه. اصلا این Thread ها به هم ربط دارند یا نه.
این کار شما مثل این می ماند که Winamp داره آهنگ پخش می کنه و Word هم باز است. آیا مهم است که شما چند کلمه تایپ می کنید و به اندازه آن برای شما آهنگ پخش شود؟
پس هیچ ربطی به هم ندارد.
برای هم زمانی Thread ها می توانید از متد Join و Interrupt استفاده کنید. که درون Thread های تعریفی شما هستند.

موفق باشید.

senaps
02-03-2013, 21:25
دوست عزیز، تصورتون از ترد ها چیه اصلا؟!!!
اگر کاری غیر از این کرده بود، جای تعجب بود!!!!!‌:)
اگه میخوای مثه هم کار کنن، یه دیلی ( ترد اسلیپ) بزن وسطش به مددت یک ثانیه(۱۰۰۰) بعدش تقریبا مثل هم انجام میده...

Life24
02-03-2013, 23:47
دوست عزیز، تصورتون از ترد ها چیه اصلا؟!!!
اگر کاری غیر از این کرده بود، جای تعجب بود!!!!!‌:)
اگه میخوای مثه هم کار کنن، یه دیلی ( ترد اسلیپ) بزن وسطش به مددت یک ثانیه(۱۰۰۰) بعدش تقریبا مثل هم انجام میده...
سلام
بله مشکل حل شد.
اما چرا وقتی تاخیر می زاریم به ترتیب میره؟ اما اون طوری رندوم کار میکنه؟

senaps
03-03-2013, 11:31
اما چرا وقتی تاخیر می زاریم به ترتیب میره؟ اما اون طوری رندوم کار میکنه؟


بحص اصلی نحوه‌ی پراسس کردن رو تو درس سیستم عامل باید پاس بکنین یا میتونین کتابش رو بردارین و بخونین از کتابخونه‌ای جایی چون مفصله....

خلاصه اینه که پردازنده سرعت وحشتناکی داره و ترد های بسیار زیادی سرش ریخته... به هر کدوم یه چند میلی ثانیه وقت میده، اگر انجام شد، که شد، نشد، میره ترد بعدی! و اون بابا باید بره ته صف بوق بزنه!:n08:

برا همین، ممکنه یه تردی تو اون یه میلی ثانیه یا کمتر یا بیشتر، فرصت نکنه کل توابع رو اجرا کنه، یا فرصت بکنه کلشون رو اجرا بکنه...!!!
ممکنه وسط اجرا، یه ترد دیگه بپره جلو که اولویتش بالا تر باشه و کار این نیمه تموم بمونه و کلی احتمال دیگه!‌:)