찾다

 >  Q&A  >  본문

java - unable to create new native thread

我有一个程序主线程需要不断创建子线程,然后分配任务给该子线程执行。执行完之后子线程就没用了。
然后报出了java.lang.OutOfMemoryError: unable to create new native thread异常。
①java 的内存回收机制不会回收执行 完run方法的线程吗???
②java的线程的start方法只能调用一次,那么怎么复用已经存在的且执行完run方法的线程呢?
③如何解决该异常呢?

怪我咯怪我咯2770일 전984

모든 응답(2)나는 대답할 것이다

  • 高洛峰

    高洛峰2017-04-18 09:33:15

    Java 스레드 풀 사용

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:33:15

    1. Java 메모리 재활용 메커니즘은 실행이 완료된 스레드를 재활용합니다run. 이러한 상황에서는 스레드 생성 속도가 너무 빨라서 생성된 스레드 중 대부분이 여전히 실행 중인 것으로 추정됩니다.

    2. @xixicat과 동일한 스레드 풀 사용

    3. 시스템이 생성할 수 있는 총 스레드 수는 운영체제에 따라 다르므로 이 예외를 해결하려면 스레드 풀을 사용하세요

    회신하다
    0
  • 취소회신하다