gpt4 book ai didi

java - 创建线程来运行算法播放器

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:23:15 27 4
gpt4 key购买 nike

我正在尝试编写一个程序来实现 Prisoners and switches problem 的解决方案.我创建了一个 SwitchRoom 类..

public class SwitchRoom
{
private boolean switchA;
private boolean switchB;

和一个囚徒类

public class Prisoner
{
public void visitSwitchRoom() {
// do something with switches

现在我在想我该如何运行它。最好让 Prisoner 类实现 Runnable(将它们的实例变成线程),然后在 Java 程序中生成 23 个线程吗?

如果这是一个好方法,您能提供一个代码示例让我开始吗?

如果这不是正确的方法,您能给我一些建议吗?

最佳答案

您的理论化方法似乎没问题。

从实现runnable开始,在run()方法中做:

public void run() {
while (true) {
if (/*counterperson has 23 counts*/) { break; }
synchronized (/*your switchroom object here*/) { // this makes it so only one person can flip switches at a time
// use an if/else to figure out if this person is the "counter" person
// try to flip a switch/do stuff based on required logic regarding if he is
// the counter person
}

try {
wait(100); // or however long you want to wait before trying again
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

并制作 23 个这样的线程。如果你在每个对象中放置一个 boolean 值来表示该对象是普通囚犯还是柜台人员,请记住将默认值设置为 false,并将其中之一设置为 true,以便最终跳出 while 循环。

关于java - 创建线程来运行算法播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29903570/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com