Java-процесс, запущенный как jar, запускается с высокой загрузкой процессора без видимого прогресса - PullRequest
0 голосов
/ 05 октября 2018

Написал Java-процесс в Spring-Boot, процесс использует пул fork-join.

Иногда процесс запускается нормально и успешно завершается, иногда он зависает на неопределенный срок, запускается с использованием очень высокой скорости процессора, но по-прежнему не выполняется прогресс.

Дамп потока показывает состояние работоспособности только для 3 типов работы, которые какследующим образом:

 1.  java.lang.Thread.State: RUNNABLE
    at java.util.WeakHashMap.put(WeakHashMap.java:453)
    at java.util.Collections$SetFromMap.add(Collections.java:5461)
    at org.apache.cxf.jaxrs.client.spec.ClientImpl$WebTargetImpl.initTargetClientIfNeeded(ClientImpl.java:358)
    at org.apache.cxf.jaxrs.client.spec.ClientImpl$WebTargetImpl.request(ClientImpl.java:260)
    at org.apache.cxf.jaxrs.client.spec.ClientImpl$WebTargetImpl.request(ClientImpl.java:366)

2. "C2 CompilerThread2" #30 daemon prio=9 os_prio=0 tid=0x00007ff9b0979000 nid=0x250be waiting on condition [0x0000000000000000]
           java.lang.Thread.State: RUNNABLE

3."GC task thread#12 (ParallelGC)" os_prio=0 tid=0x00007ff9b0034800 nid=0x24f94 runnable          

Далее, пытаясь отладить проблему, у меня есть несколько входных данных:

Я использую org.apache.cxf.jaxrs.client, когда анализ найден, метод initTargetClientIfNeeded для ClientImplиспользуя 2 свойства thread.safe.client и thread.safe.client.state.cleanup.period.Нужно ли мне определять эти 2 свойства, чтобы сделать его потокобезопасным?

...