آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سدر مورد Thread لطفا کمک کنید

hojjat  10 سال پیش  10 سال پیش
0 0

سلام دوستان عزیز. سوالم اینه چرا اگر count شماره 1 فعال باشه شمارش معکوس از 7 تا -1 و اگر count 2 فعال باشه از 7 تا 0 ایجاد میشه که درست هم باید همین باشه چرا دو نتیجه متفاوت مگر کدها به ترتیب اجرا نمیشند حسابی گیج شدم ممنونم اگه جواب بدید 

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
AhmadVB  10 سال پیش
0 0

اجرای Handler معمولا کمی طول میکشد. یعنی زمانی که شما Handler را صدا می زنید قبل از اجرای صحیح آن،  بلافاصله یکی از count کم می کنید و وقتی handler اجرا می شود count مقدار قبلی خود را ندارد. ولی زمانی که بعد از sleep آن را تغییر می دهید ، آن قدر زمان گذشته که احتمال زیاد Handler اجرا شده. ضمنا در حالت اول فکر کنم شما از 6 می شمارید تا -1 نه از 7 ، درسته ؟

برای این کار بهتر است شما یک متغیر final قبل از اجرای handler تعریف کنید و مقدار count را درون آن بریزید. سپس درون بلاک Handler از آن متغیر final استفاده کنید.

ضمنا دقت کنید که handler در Thread Main اجرا می شود و شما الان در حال اجرای کدهای خود در Thread ای غیر از main هستید. پس کد های داخل Handler به ترتیبی که شما نوشته اید پس از شروع While اجرا نمی شود.

0 0
بله حق با شماست اگر ورودی ۷ داشته باشم در حالت اول از ۶ تا -۱ و اگر حالت دوم باشه از ۷ تا ۰ . منم حدس زدم کدها به ترتیب اجرا نمیشند . میشه بگین الان کدها به چه ترتیب اجرا میشند و اگر داخل خود thread main اجرا بشند چی میشه؟دستتون درد نکنه جواب دادین (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .