似乎有许多不同的方法可以创建线程(Runnable vs Thread类)和ThreadPools。
在Java中创建和池化线程的效率和最有效(性能方面)的技术有什么区别吗?
发布于 2012-04-07 11:46:48
归根结底,它们都依赖于相同的底层Thread-based机制来实际完成工作。这意味着如果你在问“启动单线程最有效的方法是什么?”答案是,创建一个Thread对象并对其调用start(),因为在最终创建Thread对象并对其调用start()之前,任何其他方法都需要执行一些其他步骤。
这并不意味着这是产生线程的最好方法,它只是意味着它是从Java代码生成线程的最底层的方法。创建线程的其他方法为您提供了管理底层Thread的不同类型的基础设施,因此您选择的方法应该取决于所需的基础设施的数量和种类。
发布于 2012-04-07 11:27:16
如果需要处理许多短而频繁的请求,最好使用ThreadPool,这样就可以重用已经打开的线程,并为它们分配Runnable任务。
但是,当您需要为单个任务操作启动一个线程,或者实例化一个在所有应用程序时间内或在很长一段特定时间内运行的守护程序线程时,最好创建一个线程,并在不再需要它时终止它。
https://stackoverflow.com/questions/10051380
复制相似问题