КАК ИСПОЛЬЗОВАТЬ Метод сна в моем классе поиска - PullRequest
0 голосов
/ 17 июня 2020

Я работаю над многопоточной программой. Может ли кто-нибудь помочь мне, как реализовать метод сна в моей программе. Я никогда не использовал его, и требуется, чтобы метод run использовал метод сна. Я запустил 4 потока и проверил выделенные диапазоны. и я должен изменить класс Finder, чтобы его метод запуска использовал метод сна. Никогда не использовал метод сна.

import static java.lang.System.out;

class Range
{
    int start;
    int end;

    Range(int s, int e)
    {
        start = s;
        end = e;
    }

    boolean contains(int x)
    {
        return end - start >=0;
    }

}

class Finder implements Runnable
{


    @Override
    public void run()
    {

    }
}

public class ThreadTest implements Runnable
{
    static void log(Object o){out.print(o);}
    static void logLn(Object o){out.println(o);}
    /**
     * When an object implementing interface <code>Runnable</code> is used
     * to create a thread, starting the thread causes the object's
     * <code>run</code> method to be called in that separately executing
     * thread.
     * <p>
     * The general contract of the method <code>run</code> is that it may
     * take any action whatsoever.
     *
     * @see Thread#run()
     */
    @Override
    public void run()
    {
        logLn("Running main");
    }

    static Range myRange = new Range(100, 500);


    public static void main(String[] args)
    {
        if (myRange.contains(300))
        {
            System.out.println ("You\'re within the correct range.");
        }

        Finder fc = new Finder();
        Thread t1= new Thread(fc);
        t1.start();

        Thread t2= new Thread(fc);
        t2.start();

        Thread t3 = new Thread(fc);
        t3.start();

        Thread t4 = new Thread(fc);
        t4.start();

        Runnable myRunnable = new Runnable(){
            public void run(){
                System.out.println("Runnable running");
            }
        };
        myRunnable.run();
    }


}

1 Ответ

0 голосов
/ 17 июня 2020

Sleep - это статический c метод, предоставляемый классом Thread через Thread.sleep(1000L), где значение, которое вы передаете, является Long, представляющим миллисекунды. Реализация метода сна не имеет особого смысла, но вызов Thread.sleep () приостановит текущий поток, выполняющий этот вызов.

Итак, я предполагаю, что вы должны вызвать Thread.sleep во время выполнения функция Finder.

EDIT Реализация будет просто вызывать то, что я объяснил:

class Finder implements Runnable{
    @Override
    public void run(){
        System.out.println("Thread " + Thread.currentThread().getId() + " sleeping");
        Thread.sleep(1500L);
        System.out.println("Thread " + Thread.currentThread().getId() + " awake");
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...