GC并行线程的作用在G1 GC的垃圾回收过程中,Stop-the-World(STW)暂停阶段(如Young GC的Evacuation Pause)和并发标记阶段都需要多线程来加速。G1 GC根据系统CPU核心数自动决定并行工作线程数,并通过GC日志中的初始化信息暴露这些配置。例如,启动日志中会输出:[0.065s][info][gc,init] Parallel Workers: 8 [0.065s][info][gc,init] Concurrent Workers: 2其中Parallel Workers用于STW阶段的并行任务(如“Evacuate Collection Set”),而Concurrent Workers用于后台并发标记。合理设置这两个线程数能够显著缩短GC暂停时间,提升应用响应速度。常见问题一:线程数过少当分配的并行工作者数量少于CPU核心数时,CPU资源无法被充分利用,导致STW阶段处理缓慢。例如,在8核系统上如果只配置了2个Parallel Workers,整个回收过程将严重串行化,暂停时间可能成倍增加。症状GC日志中“Using X workers of Y”显示X远小于Y。单个GC暂停的毫秒数明显高于预期。CPU使用率在GC期间偏低,而应用线程等待时间变长。解决方案适当增加并行工作者数量,使其接近或等于可用CPU核心数。调整-XX:ParallelGCThreads参数(取值通常建议为CPU核心数,但不超过8~16,避免过度订阅)。常见问题二:线程数过多相反,如果并行工作者数量超过物理核心数,操作系统会产生大量上下文切换,反而延长GC暂停时间,甚至导致CPU争用加剧。