-1

作为我从事的项目的一部分(使用 Java),我面临以下问题:我想显示 n 个值。为了解释的目的,n = 10(1 到 10)。我生成一个随机数(范围为 1 到 10)并选择一个我不想显示的数字。假设我的随机数是 5。

我在主线程中显示从 1 到 4 的数字,然后启动另一个线程,我在其中睡眠 25 毫秒。同时,我将数字 6 到 10 存储在主线程的临时数组列表中。5号睡眠时间到期后,我想访问临时arraylist中的元素并一一显示。

我需要帮助将控制权转移到主线程,并带有一个信号,即数字 5 的时间已过期,这将允许我继续显示 6 到 10。

PS:在使这个工作正常之后,我需要在更大的空间(例如 1 到 10000)中扩展多个丢失随机数的想法,同时缓冲丢失的数字之间的数字。

4

1 回答 1

0

此答案假设您有一个ArrayList呼叫displayNums,其中包含您目前要显示的所有号码。

当时间到期(这是在第二个线程中)

synchronized (displayNums) {
    displayNums.addAll(heldNums);
}
myDisplayArea.repaint();

唯一棘手的部分是您需要将每次访问都包装displayNumssynchronized像这样的块中。

于 2013-05-08T01:29:49.540 回答