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

چه موقع از thread استفاده کنیم و چه موقع از Timer?

nooriDeveloper  11 سال پیش  11 سال پیش
+3 0

دوستان سوالی که برام پیش اومده اینه که چه هنگام استفاده از thread  درسته و چه وقتی استفاده از timer? به عنوان مثال تو یه مورد خاص اگه در یک اکتویتی قرار باشه که به کاربر 60 ثانیه مهلت داده بشه متنی روببینه و بعد از اون به یه اکتیویتی دیگه ارجاع داده بشه،(به طوریکه کاربر کاری روی UI انجام نده فقط در خلال این زمان، بتونه به صفحه بعد بره مثلا تو ثانیه 30اُم) آیا استفاده از timer بهتر نیست؟ (نکته ای که من رو در مورد thread نگران میکنه و برام پیش اومده اینه که بعضی وقت ها عملیات های منطقی رو غلط انجام میده) و نکته دیگه اینکه بالاخره گذاشتن تابع Timer در جاوا حتما دلیل خاصی داره وگرنه چرا باید هم thread وجود داشته باشه هم Timer?

0 0
Thread و Timer دو چیز متفاوت هستند و halting هم فقط "بخشی" از قابلیت های Thread هستش. (11 سال پیش)
0 0
درسته، سوال من هم اینه که چه موقع از timer استفاده کنیم بهتره، چون بعضی جاها میشه هر دو رو استفاده کرد (11 سال پیش)
+1 0
توی دوره Udacity گفتن سه جا از ترد جدا استفاده بشه : کار با دیتابیس، اتصالات شبکه (اینترنت و ...)، کار با Bitmap ها، یجا دیگه علاوه بر این سه، کار با فایل و یک مورد دیگه (یادم نیست) رو هم توصیه کرده بودن. (11 سال پیش)
+2 0
ویدو های استاد رو دوباره ببینید، بخش های اول که Thread رو با کارگر مثال زده بودن، وظیفه تایمر فقط زمانبندیه ولی Thread به قول استاد یک کارگره که یک وظیفه داره و ما میتونیم چند کارگر داشته باشیم با وظایف مختلف. هیچ ارتباطی به هم ندارن. در مورد سوالتون هم در اون مورد بهتره از تایمر استفاده کنید ولی میشه از ترد هم استفاده کرد. (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Criss  11 سال پیش
+6 0

شما باید قبل از هرچیز معنی ترد رو بدونید < که ترد یعنی چی ؟ این اصطلاح چی هست ؟ و یا اصطلاحی مثل مولتی تردینگ یعنی چی

ببینید سی پی یو I7 چهار هسته واقعی داره < اما همزمان میتونه 8 پروسه رو پردازش کنه < دلیلش این هست که هر هسته یک ترد جاداگانه داره < درواقع یک سی پی یو I7 چهار هسته و چهار ترد داره <

(اگر اموزش های استاد رو دیده باشید و توضیحاتی که در باره ترد اونجا داده میشه)تفاوت عمده thread که میتونه با timer (البته من از تایمر اطلاعاتی ندارم و تابحال استافده نکردم) داشته باشه این هست  که ترد در عین واحد به برنامه شما اجازه میده سایر متد ها و کلاس ها هم پردازش بشوند < و خروجی بدهند < در حالی که اگر از ترد استفاده نمیشد < و برای مثال شما یک حلق While داشته باشید < تا زمانی که کار این حلقه تموم نشده < برنامه شما اجازه پردازش دیگر خطوط سورس کد رو نداره < و در واقع شما میبینید که برنامه حالتی شبیه به قفل شدن داره < و اگر شما روی برنامه کلیک کنید متد OnclickListener اجرا نمیشه < چون برنامه شما تماما در حال پردازش اون حلقه هست <

 

من پیشنهاد میکنم < هر موقع میخواهید از ترد استفاده کنید < ببینید واقعا دستورات شما به پردازش جداگانه نیاز داره ؟ < پردازشی که به برنامه (یا حالا شاید کامپایلر ، من اطلاعات زیادی ندارم !) اجازه بده سایر خطوط سورس کد شما نیز مورد پردازش قرار بگیره

برای مثال : همون طور که Sprit گفتد < فرض کنید برنامه شما نیاز به دریافت اطلاعات از سرور شما داشته باشه < اگر سرعت ارتباط پایین و میزان حجم دریافتی بالا باشه < و شما از ترد استفاده نکنید < برنامه شما حالت قفل شده پیدا میکنه تا زمانی که ارتباط برنامه با سرور تمام بشه <

+2 0
توضیح خوبی بود، فقط پیشنهاد می کنم اصطلاحات "فنی" رو لاتین بنویسید تا خواناتر و قابل فهم تر باشه. (مثل ترد/Thread). (11 سال پیش)

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