Aru*_*n R 4 java multithreading
如果没有Java API的源代码,无论如何都要知道API方法是否创建多个线程?如果您正在编写Java API并且它们创建多个线程,是否需要遵循任何约定.这可能是一个非常基本的问题,但它恰好产生了一个讨论,其中的关键问题是 - "你怎么知道哪些Java API创建线程,哪些没有"?
确定哪些库创建新线程的一种方法是禁止Thread创建和ThreadGroup修改SecurityManager.看java.lang.SecurityManager.checkAccess(Thread)方法.通过实现自己的SecurityManager,您可以对线程的创建做出反应.
要回答另一个问题:许多库创建新线程,即使您不期望它.例如,用于HTTP通信的API为Keep-Alives或会话超时创建计时器.Java 2D正在创建一个信令线程.Java本身有多个线程,例如Finalizer线程; AWT/Swing事件调度程序线程等