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

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

Я пробовал:

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

            try {

        Thread.sleep(integerTime);

, а затем было

 threadstart.start(); 

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

Все советы приветствуются.

1 Ответ

3 голосов
/ 23 марта 2012

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

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

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