为什么说创建线程Thread的开销大?
因为线程和普通Java对象不同,除了需要给Thread对象分配内存,进行初始化之外,还需要做以下工作。
当线程结束时,回收已经分配的资源也会消耗资源。另外存活的线程作为GCRoots之一,它所关联的对象都不会被GC回收,这样也会持续占用一些资源。所以对于线程使用比较频繁的场景,我们应该优先考虑线程池。
内容