【发布时间】:2018-11-01 21:03:52
【问题描述】:
我有一个控制 USB 机器人的方法botMovement()。它使用来自ArrayList 的参数值/项目调用两次,如下所示:
for (BOTx1 aBot : theBotAL) { // theBotAL contains the BOTs DataType
botMovement(aBot);
}
我希望同时执行这两种方法/功能,这样一个机器人(USB 机器人)就不会在另一个之前移动。
我了解 for 循环逐个元素地迭代,因此不适合同时执行,因此尝试了以下操作:
botMovement(theBotAL.get(0)); botMovement(theBotAL.get(1));
不过,虽然延迟较少,但我知道这也会导致轻微延迟。
因此,我想知道是否有一种方法可以同时调用这两种方法,从而使 botMovement 同步。
【问题讨论】:
-
你真的在观察延迟吗?
-
@shmosel 一个非常小的。
-
每个机器人“可以”由一个单独的线程控制,但是,仍然不能保证这些方法会被同时调用,即使使用信号量或有针对性的定时执行(所以它们会在指定的时间后运行)
-
@MadProgrammer 好的,谢谢。如何使用单独的线程控制每个机器人?
-
@LearningToPython 首先,您需要定义“如何”停止每个线程,直到您希望它们运行。也许从Concurrency in Java开始
标签: java multithreading simultaneous