Как вы заставляете поток запускать его содержимое, приостанавливать и повторять?

1

Я в основном сделал это, но мой, когда я запускаю приложение, он запускает поток слишком много раз слишком быстро, прежде чем замораживать. Глядя на то, чтобы мой поток выполнялся один раз, остановитесь, а затем снова запустите поток.

Я пытался:

                while (running.get()) {
        Thread threadstart = new Thread()
        {
        public void run(){

            try {

        Thread.sleep(integerTime);

и затем

 threadstart.start(); 

в конце. Это мой точный код только со всеми процессами.

Все советы были оценены.

Теги:
multithreading
loops
repeat

1 ответ

3
Лучший ответ

Вы спите в новом потоке, так что ваш цикл while будет продолжать создавать новые потоки с очень высокой скоростью, каждый из которых будет спать.

Почему бы просто не создать один поток, который имеет цикл?

Thread thread = new Thread(new Runnable() {
    @Override public void run() {
        while (running.get()) {
            try {
               Thread.sleep(integerTime);
               // Do work
            }
        }
    }
};
thread.start();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню