似乎有许多不同的方法可以创建线程(Runnable vs Thread类)以及ThreadPools。
在效率方面是否有任何差异,哪些是在Java中创建和汇集线程的最有效(在性能方面)技术?
答案 0 :(得分:3)
如果您需要处理许多短期和频繁的请求,最好使用ThreadPool
,这样您就可以重用已经打开的线程并为它们分配Runnable
个任务。
但是当您需要为单个任务操作启动线程或实例化一个运行所有应用程序时间或特定时间长的守护程序线程时,可以更好地创建单个线程并在不执行时终止它需要它了。
答案 1 :(得分:0)
在一天结束时,他们都依赖于相同的基于Thread
的基础机制来实际开展工作。这意味着如果你问“什么是启动单个线程的最有效方法?”答案是,创建一个Thread
对象并在其上调用start()
,因为任何其他方法在最终创建Thread
对象并调用start()
之前会采取其他一些步骤它
这并不意味着这是产生线程的最佳方式,它只是意味着它是从Java代码中执行它的最低级别的方法。创建线程的其他方法为您提供了不同类型的基础架构来管理基础Thread
,因此您选择的方法应该取决于您需要的基础架构的数量和种类。