首先是一点背景。我在 NetBeans 中收到警告,告诉我不要在构造函数中启动新线程。我已经读过这样做的原因是因为新线程可能会启动并尝试引用该对象在构造函数实际完成创建对象之前启动线程。
1.)为了实验而不是使用new Thread
,thread.start()
我试过ExecutorService
了,我没有收到任何警告。 这是否意味着如果我使用可以在构造函数中创建和启动新线程ExecutorService
?
2.)另外,如果我有ExecutorService
一个缓存线程池的形式,将通过标准方法创建一个新线程new Thread
并thread.start()
从缓存池中拉出一个线程(或者如果一个线程不可用,则导致它创建一个)还是这些线程完全独立于缓存线程池?