我不知道何时应该在Java开发中使用多线程,以及使用多线程的逻辑/原因。它在不同的情况下有什么帮助呢?
场景1
我在和敌人一起做2D滚动游戏,想想金属子弹
场景2
我正在创建一个数据库守护进程来检查多个数据库内容。
场景3
我正在为JSP制作一个servlet,其中包含从数据库中获取的一些信息。
可以随意编辑场景,使其变得更好。
另外:游戏服务器应该使用多线程吗?或者我不应该?
发布于 2013-08-14 16:00:48
我不知道何时应该在Java开发中使用多线程,以及使用多线程的逻辑/原因。它在不同的情况下有什么帮助呢?
出于几个不同的原因,您应该更改程序以使用线程。
此外:对于J2EE内容,我应该在什么时候在servlet中使用多线程?或者我不应该?
我认为上述同样的答案也适用。一般来说,servlet是设计用来快速返回的非常小的任务,所以对于它们来说,分叉线程是相对不寻常的。但是,如果一个servlet需要启动一个长期运行的任务,但您希望它返回一个“启动作业”类型的响应,那么就需要一个线程。
需要注意的是,在执行servlet时,上游处理程序可能已经在使用线程池,因此您不必做任何事情。
编辑:
场景1-我正在制作一个与敌人一起玩的2D滚动游戏,想想金属子弹。
我对此没有很好的答案。这取决于是否有大量的呈现,这取决于您正在使用的工具包。
场景2-我正在创建一个数据库守护进程来检查多个数据库内容。
您可能会被数据库IO绑定,所以多线程可能不会给您提供任何东西。同样,如果您有长时间运行的查询,如果短查询可以在其他线程上并行执行,则可能会得到一些改进。这还取决于数据库如何处理多个连接。
场景3-我正在为JSP制作一个servlet,其中包含从数据库中获取的一些信息。
如果响应必须等待获取信息,那么就没有理由在另一个线程中这样做。但是,正如我前面提到的,如果servlet试图分叉在后台运行的某种数据库事务,那么您应该使用一个线程。
同样,大多数servlet容器已经在线程池中运行。
发布于 2013-08-14 16:01:07
我不知道什么时候应该在Java开发中使用多线程
-Then你不应该。此外,如果你能避免它,尽一切办法这样做。
When:一个示例:如果需要同时从多个站点/资源获取不同股票的市场份额值,以更新不同的代理系统,则可能需要先从一个站点获取单个线程,然后才能从下一个站点获取。
根据你在问题中的编辑-
塞纳里奥1:我在和敌人一起做2D滚动游戏,想想金属子弹
是的你可以。一个例子是在一个线程中加载资源,同时显示一个“加载.”另一个线程中屏幕上的动画。
发布于 2013-08-14 16:03:26
假设您有一个负责下载文件的应用程序,如果您不使用多个线程,所有其他指令都会等到文件完成后再下载。例如,Swing使用一个特殊的线程来显示他的gui,所以您应该看看这教程并阅读一些并发性。
https://stackoverflow.com/questions/18236597
复制相似问题