0

我创建了一个非常简单的 Java 游戏,其中包含玩家和随机移动的机器人。玩家可以通过按下按钮将机器人添加到地图中,从而为机器人创建一个新线程。

所以它看起来像这样......

Thread newBotThread = new Thread(new Runnable(){

            public void run(){

如果我多次按下按钮,会创建几个机器人,它们是否都在线程名称“newBotThread”下运行?我正在添加允许玩家与机器人交互的功能,有没有办法区分线程,即使它们都具有相同的名称?所以我可以停止一个机器人,而其他机器人仍然继续?

非常感谢!

4

2 回答 2

2

您可以将它们添加到 aCollection中,例如ArrayList

ArrayList<Thread> botThreads = new ArrayList<Thread>();
...
botThreads.add(new Thread(new Runnable(){ 
...

当然,您应该botThreads在按钮事件处理程序之外声明其他类可以访问的地方。

于 2013-04-15T23:05:03.013 回答
0

简短的回答:有一个方法 Thread#setName(String) 和一个构造函数 Thread(String) 设置线程的名称,并且必须在调用 start() 方法之前设置。

长答案:您很可能不应该使用此名称来控制您的机器人。我建议创建一个实现 Runnable 的类,其中包含诸如 go()、stop()、continue() 或任何您需要的方法,并且每当您创建这些类的新实例时,您将引用保存在某处(可能是 Map 或 BotManager或其他),而且您可能应该使用 Executor 执行它们。只是我的观点

于 2013-04-15T23:02:12.687 回答