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

معلق نگه داشتن یک Thread به همراه Thread های زیادی درون خود

Hadi  8 سال پیش  8 سال پیش
0 0

سلام دوستان. من یک Thread  دارم که درون این Thread ام چند تا Thread دیگه هم هستند(تقریبا 10 تا) که این ها با همکاری همدیگه فایل رو دانلود می کنند و عملیات هایی که میخواهم رو توش انجام میدند. الان میخوام یک متد داخل کلاس ام بذارم که اگر اون متد فراخوانی شد، Thread اولی و تمام Thread ها داخل خودش رو معلق نگه داره و هر وقت که گفتم اون رو آزاد کنه و از اونجایی که معلق شدن، به کارشون ادامه بدن.مثلا کد من مثل زیر هست:

 Thread main = new Thread(new Runnable() {

            @Override
            public void run() {

                Thread t1 = new Thread(new Runnable() {

                    @Override
                    public void run() {
                        try {
                            Thread.sleep(1000);
                            Log.i("Log", "I am in t1");
                        }
                        catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                });
                t1.start();

                Thread t2 = new Thread(new Runnable() {

                    @Override
                    public void run() {
                        try {
                            Thread.sleep(1000);
                            Log.i("Log", "I am in t2");
                        }
                        catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                });
                t2.start();

                try {
                    Thread.sleep(1000);
                    Log.i("Log", "I am in main");
                }
                catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }
        });
        main.start();

با سرج هایی که کردم فهمیدم که راه هم استفاده از wait() و notify() هست.اما هنوز نفهمیدم چطوری کاری که میخوام رو انجام بدم. ممنون میشم کسی اگر میدونه من رو راهنمایی کنه. متشکر

0 0
سلام ... شما باید همه ترد هارو تو لیستی یا ارایه ای نگه دارید که بتونید همه رو wait بکنید بعدش با صدا کردن notifyAll همه رو بیدار کنید. در کل این کار خطرناکی هست به نظرم از ابزار ها و کتاب خانه های جدید و بروز استفاده بکنید که کارتون راحت تر میشه ... موفق باشید (8 سال پیش)
0 0
بچه ها کسی واقعا نمیدونه که چیکار باید کرد؟ (8 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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