我们有一个桌面应用程序,它具有一些后台线程,并且由于执行外部命令,还需要线程来处理out和err流。新线程与重用线程
我们可以创建新线程并让它们完成或者我们可以重用线程。重用线程会有一些好处,例如在性能或内存使用的情况下?
我们有一个桌面应用程序,它具有一些后台线程,并且由于执行外部命令,还需要线程来处理out和err流。新线程与重用线程
我们可以创建新线程并让它们完成或者我们可以重用线程。重用线程会有一些好处,例如在性能或内存使用的情况下?
没有办法重用Thread
因为Thread
一旦完成(退出run()
法)及其Thread.State
通行证从Thread.State.RUNNABLE
到Thread.State.TERMINATED
和线程类没有设置其状态重用它setState(Thread.State)
方法。
但是我们可以帮助Java中的线程池。在线程池的情况下,创建一组固定大小的线程。线程池中的线程被拉出并由服务提供商分配作业。作业完成后,线程再次包含在线程池中。
利用线程池的:
JDK 1.5及以上,你应该尽量不要创建线程。
请参考:http://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html。尝试使用线程池执行器。
重用线程具有以下优势:
正在创建一个线程对象,比创建一个普通对象贵得多吗? –
如果通过普通对象表示“new Object()”,那么是 - 只要看看Thread类的构造函数,以获得创建新线程时发生的事情的印象 –
定义“重用”的线程。一个线程只能启动一次。 – TheLostMind
使用线程池。 – UmNyobe
线程共享类的重用线程。线程池是很好的选择。 –