Два цикла практически одновременно - PullRequest
2 голосов
/ 05 октября 2010

Я не знаю, как называется этот процесс, но я видел, что это возможно. как называется этот процесс?

В основном, у меня есть метод, который имеет цикл, и в каждой итерации есть секунда задержки.

function myLoop(float delay)
{
    for(int x=0; x<100; x++)
    {
        Print("Loop number: " + x);
        TimeDelay(delay);
    }
}

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

function main()
{
     myLoop(2);
     myLoop(2);
}

поэтому, как только первый myLoop запустился, я бы хотел, чтобы второй myLoop запустился немедленно, они оба запустились бы одновременно, мой вопрос, как вы называете этот процесс? возможен ли этот процесс? (например, в Java).

Большое спасибо! :)

Ответы [ 4 ]

2 голосов
/ 05 октября 2010

Обычно для этого требуется некоторая форма многопоточности .

Вы бы сделали что-то вроде:

function main
    start thread, calling myLoop(2)
    start thread, calling myLoop(2)

    ' Potentially wait for threads to complete
end function

Подробнее о том, как это работает в Java, см. В Учебнике по параллелизму .

1 голос
/ 05 октября 2010

Java-реализация вашей программы будет похожа на эту.

    class MyThread implements Runnable{
       Thread t;
       int delay;
       MyThread (int delay) {
          t = new Thread(this,"My thread");
          this.delay = delay;
          t.start();
       }
       public void run() {
          for(int x=0; x<100; x++)
          {
           Print("Loop number: " + x);
           TimeDelay(delay);
          }
      }
    }
    class Demo {
       public static void main (String args[]){
         Thread t1 = new MyThread(2);
         Thread t2 = new MyThread(2);
         t1.join();
         t2.join();    
       }
    }
0 голосов
/ 19 декабря 2010

Это называется асинхронным вычислением.Вы можете решить это чисто с помощью Futures.(Вам не нужно делать полноценную многопоточность)

http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html

0 голосов
/ 05 октября 2010

Ответ на ваши вопросы.

  1. Как это называется?A: Threading - запуск нескольких задач одновременно.(Мы называем это разветвлением в приложениях PHP / Linux.)

  2. Возможно ли это в Java?A: Конечно, это возможно.Откровенно говоря, это легче реализовать в Java.Пожалуйста, следуйте приведенным выше ответам.

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