JavaRush /Java Blog /Random-TK /Aralyk sapak
Pegas
Dereje
Гродно

Aralyk sapak

Toparda çap edildi
Miras alýan iki synpy çyzdym Runnable. Olarda ýönekeý doldurgyç bar (Thread.sleep and sout). Ulanyp, sapaklary kesmäge synanyşýardym interruptedwe isInterrupted. Näme üçindir, bökdençlik ýüze çykmaýar, ýöne programmanyň ýerine ýetirilişi bir aýlawda bolýar we ýalňyşlyk ýüze çykýar: Aralyk sapak - 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)
Erroralňyşlyk ýüze çykandan soň, sapaklar belli bir wagtlap işlemegini dowam etdirýärler. RunnableEmma jaňy miras galan synplardan aýyrsaňyz Thread.sleep, programma kadaly işleýär. Mesele näme, ýalňyşlyk näme üçin ýüze çykýar we programma näme üçin bes edilmeýär? Ine 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();
    }
}
Birinji synp:
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");
        }
    }
}
Ikinji synp:
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");
        }
    }
}
Mowzukdaky teswirleriňiz üçin sag boluň)
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION