Вопрос о потоках Java

222
20 мая 2018, 09:00

Как определить, какой из двух потоков закончил свою работу последним.

   public class Main{
        public static void main(String[] args) {
            Chicken c = new Chicken();
            Egg e = new Egg();
            Thread chicken = new Thread(c);
            Thread egg = new Thread(e);
            chicken.setName("ch");
            egg.setName("egg");
            chicken.start();
            egg.start();
        }
    }
    class Chicken implements Runnable{
        @Override
        public void run(){
            for (int i = 0; i <6 ; i++) {
               try{
                   Thread.sleep(460);
               }catch (InterruptedException e){}
                System.out.println("Chicken is frist ");
            }
        }
    }
    class Egg implements Runnable{
        @Override
        public void run(){
            for (int i = 0; i <6 ; i++) {
                try{
                    Thread.sleep(460);
                }catch (InterruptedException e){}
                System.out.println("Egg is frist ");
            }
        }
    }

egg или chicken.

Answer 1

Если вы хотите именно узнать кто завершится первым, то как ответили вам в комментах вопроса, передайте колбэк и вызывайте его или передайте copyonwrite list и записывайте в него сообщения. А если вас это интересует как бы с точки зрения интервью, то бишь без запуска кода и его модификации, то на это вопрос нет ответа, выполнение потоков не детерминированно, и по-этому может выполниться первым как первый так и второй поток

READ ALSO
Как поставить таймер на кнопку в java?

Как поставить таймер на кнопку в java?

Есть код, который выводит сообщение после нажатия кнопки, необходимо после этого нажатия скрывать кнопку и на ее месте запускать таймер на 24 часа,...

220
Алгоритм трансформации КриптоПро urn:xml-dsig:transformation:v1.1

Алгоритм трансформации КриптоПро urn:xml-dsig:transformation:v1.1

Всем привет! Кто нибудь сталкивался с самостоятельной реализацией верификации XML-подписи, подписанной через КриптоПро? Интересует алгоритм...

215
Android: поменять значения каждого элемента

Android: поменять значения каждого элемента

Есть ListViev состоящий из TextViev, как можно зная позицию и id элемента, обратиться напрямую к каждому TextViev? Например поменять текст и задний фон...

188
Дизайн приложнения Android

Дизайн приложнения Android

Как сделать такие контейнерыОни как бы на поверхности и сзади серый фон и кажеться есть тень

210