我知道这是如此manieth多线程线程。我已经阅读了其中的很多。我已经阅读了基本的线程教程。但没有人回答我的问题,我有几个问题。Java多线程unclarity
问题1:
当创建一个实现Runnable接口的类,我必须实现的run()方法。
如果我喜欢创建一个新的线程:
Thread t1 = new Thread();
它执行时调用start方法正确运行的方法?
现在我想让我的线程t1在线程中执行另一个方法。
我面临着以下情况:
tblGames = new JTable(new GamesTableModel(mainController.retrieveGames()));
我认为这是肮脏的编码。 我认为这将是更好的实例化一个列表变量,像这样:
List<Game> games = mainController.retrieveGames();
现在是什么情况,该GUI加载(使用JPA) 所以我想运行在另一个线程表内容时冻结。我正在使用GamesTableModel来处理JTable的列等,因此我在新的GamesTableModel的构造函数中传递一个List。
我在哪里创建一个新线程,是否将它创建为MainController类?如果是,则为
(关于方法如下所示:)
public List<Game> retrieveGames(){
List<Game> games = gameRepository.getGames();
return games;
}
我将如何去运行的方法,或者在不同的线程整个方法的内容,实际上,它会很好是有整个MainController在一个新的线程,以便它永远不会冻结用户界面,或者这是不可取的?
如果建议,我是否需要在UI中创建一个线程?然后导致这个问题,我将如何运行
MainController mainController = new MainController();
在一个新的线程?
我从来没有在程序中正确实现线程,因此我的newb问题。
我从界面的run方法主要关注的是,内容是否适用于实现类权限中的所有线程?
我需要单独的线程来执行几种不同的方法。
现在的主要问题是使用新线程填充JTable的内容以获取内容。
对不起长时间乏味的阅读。并感谢你仍然在这里。
我希望收到一些关于我的问题的说明。
'SwingWorker'可以帮助您解决所有问题。阅读一些教程,这很简单。 – 2011-03-04 09:03:54
同意鲍里斯在SwingWorker上。之后,在实践中给自己一份Java并发:http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601/ref=sr_1_1?ie=UTF8&s=books&qid=1283782299&sr=8- 1 – 2011-03-04 09:05:42
感谢你们俩。 :)我现在读关于它:) – 2011-03-04 09:47:18