我正在为我的高中编程课创建一个二十一点游戏,我需要一种方法来跟踪卡片值并在后台持续运行。对该网站的研究表明,守护程序线程就是答案。如果不是这样,请为我提供合适的替代方案,并提供如何使用和创建替代方案的示例。
我的问题是我不明白如何创建一个守护程序线程。我将非常感谢如何使用和创建守护程序线程的解释和示例。
还有一个问题,对于我的程序,我创建了一个包含经销商所有代码的资源类。玩家是经销商的子类,并且都是JPanel的子类。正如我在主题中所说,这个二十一点游戏使用Swing来显示游戏,这就是"最佳利用率"我有一个应用程序文件,其中输入经销商和玩家对象,如下所示:
public class PanelProject extends JPanel
{
private PlayerBoxClubs PlayerOne;
private PlayerBoxHearts PlayerTwo;
private PlayerBoxSpades PlayerThree;
private DealerBoxDiamonds DealerOne;
public PanelProject()
setLayout(new BorderLayout());
JPanel CenterSub = new JPanel();
CenterSub.setLayout(new FlowLayout());
add(CenterSub, BorderLayout.SOUTH);
PlayerOne = new PlayerBoxClubs();
add(PlayerOne, BorderLayout.WEST);
PlayerTwo = new PlayerBoxHearts();
add(PlayerTwo, BorderLayout.CENTER);
PlayerThree = new PlayerBoxSpades();
add(PlayerThree, BorderLayout.EAST);
DealerOne = new DealerBoxDiamonds();
add(DealerOne, BorderLayout.NORTH);
JButton Quit = new JButton("Quit");
Quit.addActionListener(new QuitListener());
CenterSub.add(Quit, BorderLayout.SOUTH);
}
所以,我的第二个问题是:我应该把应用程序文件中的守护程序线程放在经销商类(这是玩家的超类)还是其他地方?
答案 0 :(得分:0)
Thread t = new Thread(new Runnable() {
public void run() {
// Do interesting background tasks, probably in a while(running) loop.
}
});
// This next line is the answer to your question
t.setDaemon(true);
t.start();
常规线程和守护程序线程之间的唯一区别是,如果运行的唯一线程被标记为守护进程,JVM将很乐意退出。
回答"在哪里放置"更难,因为这取决于你已经拥有的结构,以及你在run()方法中要做多少工作。从广义上讲,它所做的工作越多,它在自己的文件/类中的可能性就越大(两者在Java中或多或少相同)。