如何同时执行两个方法才能保证不延迟?

How can I execute two methods at the same time to ensure there is no delay?

我有一个控制 USB 机器人的方法 botMovement()。它使用来自 ArrayList 的参数 values/items 调用两次,如下所示:

for (BOTx1 aBot : theBotAL) { // theBotAL contains the BOTs DataType
    botMovement(aBot);
} 

我希望两个 methods/functions 同时执行,这样一个机器人(USB 机器人)就不会先于另一个移动。

我知道 for 循环逐个元素迭代,因此不适合同时执行,因此尝试了以下操作:

botMovement(theBotAL.get(0)); botMovement(theBotAL.get(1));

但是,虽然延迟较少,但据我所知,这也会造成轻微的延迟。

因此,我想知道是否有一种方法可以同时调用这两个方法,从而使 botMovement 同步。

第一个问题是您从一个线程调用 botMovement(以防 botMovement 不在内部创建线程),因此它们不是同时 运行 而是按顺序调用。

最好是两个创建 2 个线程来等待闩锁,当您调用 countDown() 时,它们会被通知开始。

      // CREAT COUNT DOWN LATCH
        CountDownLatch latch = new CountDownLatch(1);

   //create two threads:
        Thread thread1 = new Thread(() -> {
          try {
            //will wait until you call countDown
            latch.await();
           botMovement(theBotAL.get(0))

          } catch(InterruptedException e) {
            e.printStackTrace();
          }
        });

        Thread thread2 = new Thread(() -> {
          try {
            //will wait until you call countDown
            latch.await();
           botMovement(theBotAL.get(1))
          } catch(InterruptedException e) {
            e.printStackTrace();
          }
        });

    //start the threads
        thread1.start();
        thread2.start();
    //threads are waiting

    //decrease the count, and they will be notify to call the botMovement method
     latch.countDown();