如果一个方法在开始执行时不能在100ms 左右退出,那么应该通过主线程池以外的其他方式执行该方法。如果一个人有很多 CPU 密集型但不会阻塞的任务要执行,那么使用一个独立于“主”线程池的应用程序线程池(每个 CPU 核一个线程池)来分派它们可能是有帮助的,因为在运行非阻塞 CPU 密集型任务时,使用比核更多的线程会适得其反。但是,如果一个方法需要一秒或更长的时间来执行,并且大部分时间都被阻塞,那么该方法可能应该在一个专用线程中运行,而且几乎可以肯定不应该在一个 main-threadpool 线程中运行。如果一个长时间运行的操作需要被类似 I/O 回调这样的事情触发,那么应该在回调之前启动一个线程来执行这个长时间运行的操作,并让它在回调脉冲的监视器上等待,或者在回调退出时让回调启动一个新的线程来执行这个操作,有效地将自己的线程返回到线程池。