![]() |
1
43
假设我们有一些不同任务的工作线程,并希望它们具有特殊的名称(例如用于调试目的)。所以我们可以实现一个线程工厂:
如果您有这样一个需求,那么在没有工厂或构建者模式的情况下实现它是相当困难的。
|
![]() |
2
57
这里有一个可能的用法。如果您有一个执行器服务,它以多线程的方式执行可运行的任务,并且您的线程偶尔会因未捕获的异常而死亡。假设您不记录所有这些异常。
|
![]() |
3
16
一些内部加工 除了一些不容易看得见的内部作品外,这个主题被很好地涵盖了。 创建带有构造函数的线程时,新创建的线程继承当前线程:
根据应用程序的不同,上面的点可能根本不起作用,但在某些情况下,其中一些点可能会导致类/资源泄漏,这些泄漏很难检测并显示出不确定性行为。 那将是一个很长的职位,但是…
下面是一些(希望)可重用的代码
还有一些非常简单的用法:
|
![]() |
4
4
imho的一个最重要的功能
当然,有一个
|
![]() |
5
2
如“insertnickhere”所述,您必须理解 Factory Pattern . 使用螺纹工厂的一个好例子是 ThreadPoolExecutor : 如果需要,执行器将创建线程并处理池。如果要在创建过程中介入并为创建的线程指定特殊名称,或者将它们分配给线程组,则可以为此创建一个线程工厂并将其交给执行器。 有点像 IoC 风格。 |
![]() |
6
2
使用定制螺纹工厂是一个很好的实践。默认的工厂没有多大用处。您应该使用自定义工厂,原因如下:
查看此日志: http://wilddiary.com/understanding-java-threadfactory-creating-custom-thread-factories/ |
![]() |
7
2
按需创建新线程的对象。使用线程工厂可以消除对
这个接口的最简单实现是:
threadpoolexecutor.java的默认threadFactory
|
![]() |
8
1
ThreadFactory是一个具有单一方法的接口
它的使用取决于您的要求。假设您希望某个特定的功能始终创建守护进程线程。使用ThreadFactory可以轻松实现这一点。 下面的代码只是为了说明基本原理。它没有执行任何特定的功能。
|
![]() |
9
0
看一看
|
![]() |
10
0
你可以使用
|