JavaRush /جاوا بلاگ /Random-SD /وچڙندڙ سلسلي
Pegas
سطح
Гродно

وچڙندڙ سلسلي

گروپ ۾ شايع ٿيل
مون ٻن طبقن جو خاڪو ٺاھيو جيڪي وراثت ۾ آھن Runnable. انهن وٽ هڪ سادي ڀريل آهي (Thread.sleep and sout). مان استعمال ڪري رهيا هئاسين interrupted۽ isInterrupted. ڪجهه سببن لاء، مداخلت نه ٿي ٿئي، پر پروگرام جي عمل کي لوپ ۾ وڃي ٿو ۽ هڪ غلطي ٿئي ٿي: مداخلت واري سلسلي - 1
java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at com.javarush.test.myExample.example.thread.Producer.run(Producer.java:15)
	at java.lang.Thread.run(Thread.java:745)
java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at com.javarush.test.myExample.example.thread.Consumer.run(Consumer.java:15)
	at java.lang.Thread.run(Thread.java:745)
غلطي ٿيڻ کان پوء، سلسلو اڻڄاتل طور تي ڪم ڪرڻ جاري رکندو. پر جيڪڏهن توهان Runnableڪال کي هٽائي ڇڏيو ڪلاس مان ورثي ۾ Thread.sleep، پوء پروگرام عام طور تي هلندو آهي. مسئلو ڇا آهي، ايرر ڇو ٿي ٿئي ۽ پروگرام ڇو ختم نه ٿئي؟ هتي main:
public class Solution
{
    public static void main(String[] args) throws InterruptedException
    {
        Thread thread1 = new Thread(new Producer());
        Thread thread2 = new Thread(new Consumer());

        thread1.start();
        thread2.start();

        Thread.sleep(1500);

        thread1.interrupt();
        thread2.interrupt();
    }
}
پهريون گريڊ:
public class Producer implements Runnable
{
    @Override
    public void run()
    {
        while (!Thread.interrupted())
        {
            try
            {
                Thread.sleep(100);
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
            System.out.println("Producer");
        }
    }
}
ٻيو درجو:
public class Consumer implements Runnable
{
    @Override
    public void run()
    {
        while (!Thread.interrupted())
        {
            try
            {
                Thread.sleep(100);
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
            System.out.println("Consumer");
        }
    }
}
موضوع تي توهان جي تبصرن لاء مهرباني)
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION