如何使用和创建一个守护程序线程和Swing的最佳利用率

时间:2014-04-20 18:16:53

标签: java swing

我正在为我的高中编程课创建一个二十一点游戏,我需要一种方法来跟踪卡片值并在后台持续运行。对该网站的研究表明,守护程序线程就是答案。如果不是这样,请为我提供合适的替代方案,并提供如何使用和创建替代方案的示例。

我的问题是我不明白如何创建一个守护程序线程。我将非常感谢如何使用和创建守护程序线程的解释和示例。

还有一个问题,对于我的程序,我创建了一个包含经销商所有代码的资源类。玩家是经销商的子类,并且都是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);
   }   

所以,我的第二个问题是:我应该把应用程序文件中的守护程序线程放在经销商类(这是玩家的超类)还是其他地方?

1 个答案:

答案 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();

Documentation

常规线程和守护程序线程之间的唯一区别是,如果运行的唯一线程被标记为守护进程,JVM将很乐意退出。

回答"在哪里放置"更难,因为这取决于你已经拥有的结构,以及你在run()方法中要做多少工作。从广义上讲,它所做的工作越多,它在自己的文件/类中的可能性就越大(两者在Java中或多或少相同)。