如何解决由于VM线程和我的线程之间的线程锁定,导致JRE致命错误
我目前正在编码一个模拟过程的Java应用程序。每个进程都向其他进程发送很多UDP数据包,从而模拟了许多相互广播的机器。我使用了许多不同的线程,有时我自己(仅具有同步方法的类)以及Java类(synchronzedSet和映射)来负责同步。
我正在使用Java 11(该项目的要求在此版本中),并且遇到了一些奇怪的JRE致命错误。通过使用SerialGC,我能够减少这些错误的发生率。从我正在阅读的内容来看,VM线程(我认为是垃圾收集器线程)和我的一个线程(在发生崩溃的情况下,是一个计时器唤醒的线程)之间似乎存在死锁如果尚未收到Ack,则重新发送UDP数据包。
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f33371230a7,pid=8096,tid=8098
#
# JRE version: OpenJDK Runtime Environment (11.0.8+10) (build 11.0.8+10-post-Ubuntu-0ubuntu118.04.1)
# Java VM: OpenJDK 64-Bit Server VM (11.0.8+10-post-Ubuntu-0ubuntu118.04.1,mixed mode,sharing,tiered,compressed oops,serial gc,linux-amd64)
# Problematic frame:
# V [libjvm.so+0x65c0a7]
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /home/dcl/Documents/project/CS451-2020-project/template_java/core.8096)
#
# If you would like to submit a bug report,please visit:
# https://bugs.launchpad.net/ubuntu/+source/openjdk-lts
#
--------------- S U M M A R Y ------------
Command Line: -XX:+UseSerialGC -Xms2g /home/dcl/Documents/project/CS451-2020-project/template_java/bin/da_proc.jar --id 1 --hosts hosts.txt --barrier 0.0.0.0:10000 --signal 0.0.0.0:11000 --output outputs/1.txt config
Host: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz,6 cores,3G,Ubuntu 18.04.5 LTS
Time: Wed Nov 11 13:45:38 2020 CET elapsed time: 36 seconds (0d 0h 0m 36s)
--------------- T H R E A D ---------------
Current thread (0x00007f33300b5000): VMThread "VM Thread" [stack: 0x00007f33344f2000,0x00007f33345f2000] [id=8098]
Stack: [0x00007f33344f2000,0x00007f33345f2000],sp=0x00007f33345efcc0,free space=1015k
Native frames: (J=compiled Java code,A=aot compiled Java code,j=interpreted,Vv=VM code,C=native code)
V [libjvm.so+0x65c0a7]
V [libjvm.so+0x65cc6c]
V [libjvm.so+0x6585b0]
V [libjvm.so+0x658b25]
V [libjvm.so+0x7b0767]
V [libjvm.so+0x7b10f6]
V [libjvm.so+0x7b2048]
V [libjvm.so+0xdf9bef]
V [libjvm.so+0xdfb1e8]
V [libjvm.so+0xe01396]
V [libjvm.so+0xe018a0]
V [libjvm.so+0xe01d23]
V [libjvm.so+0xd860bf]
V [libjvm.so+0xbd632e]
siginfo: si_signo: 11 (SIGSEGV),si_code: 128 (SI_KERNEL),si_addr: 0x0000000000000000
Register to memory mapping:
RAX=0x353b343433313038 is an unknown value
RBX=
[error occurred during error reporting (printing register info),id 0xb,SIGSEGV (0xb) at pc=0x00007f3337792aee]
Registers:
RAX=0x353b343433313038,RBX=0x0000000093c00380,RCX=0x000000000000001c,RDX=0x000000000000001c
RSP=0x00007f33345efcc0,RBP=0x00007f33345efd30,RSI=0x00000000fffffff8,RDI=0x0000000000000000
R8 =0x00000008002ddf38,R9 =0x0000000093c00380,R10=0x00000000a35a68a8,R11=0x00007f333002a270
R12=0x00000000a266a790,R13=0x00007f3337e80f20,R14=0x00000000a266a79c,R15=0x00007f33345eff00
RIP=0x00007f33371230a7,EFLAGS=0x0000000000010202,CSGSFS=0x002b000000000033,ERR=0x0000000000000000
TRAPNO=0x000000000000000d
Top of Stack: (sp=0x00007f33345efcc0)
0x00007f33345efcc0: 00007f33345efd30 0000000336fe3b15
0x00007f33345efcd0: 0000000094437398 00000000a266a780
0x00007f33345efce0: 00000008002ddf40 00007f333002a270
0x00007f33345efcf0: 0000000000000003 00000008002ddf38
Instructions: (pc=0x00007f33371230a7)
0x00007f3337122fa7: 00 4c 89 45 c8 0f 1f 40 00 41 8b 1c 24 85 db 74
0x00007f3337122fb7: 78 4c 8d 2d 61 df d5 00 41 8b 4d 08 49 8b 45 00
0x00007f3337122fc7: 48 d3 e3 48 01 c3 49 3b 5f 40 49 89 d9 73 5a 48
0x00007f3337122fd7: 8b 13 83 e2 03 48 83 fa 03 75 7e 48 8d 35 ef 3e
0x00007f3337122fe7: d4 00 48 8b 13 80 3e 00 74 0e 48 89 d6 31 db 83
0x00007f3337122ff7: e6 07 48 83 fe 05 74 07 48 83 e2 fc 48 89 d3 48
0x00007f3337123007: 29 c3 48 d3 eb 41 89 1c 24 49 8b 47 30 48 85 c0
0x00007f3337123017: 0f 84 f3 00 00 00 80 78 22 00 75 0d c6 40 22 01
0x00007f3337123027: 66 0f 1f 84 00 00 00 00 00 49 83 c4 04 4d 39 e6
0x00007f3337123037: 0f 87 73 ff ff ff 4c 8b 45 c8 49 83 c0 08 4c 39
0x00007f3337123047: 45 b0 0f 87 41 ff ff ff 48 83 c4 48 5b 41 5c 41
0x00007f3337123057: 5d 41 5e 41 5f 5d c3 66 90 48 8d 05 a5 a7 d8 00
0x00007f3337123067: 4d 8b 5f 38 0f b6 00 84 c0 0f 85 52 01 00 00 48
0x00007f3337123077: 8b 7b 08 8b 57 08 83 fa 00 0f 8e 61 01 00 00 f6
0x00007f3337123087: c2 01 0f 85 a1 02 00 00 c1 fa 03 48 8b 03 48 63
0x00007f3337123097: ca a8 01 48 8b 03 0f 85 ad 00 00 00 48 83 e0 fd
0x00007f33371230a7: 48 8b 00 48 c1 e8 03 83 e0 0f 41 39 83 00 01 00
0x00007f33371230b7: 00 0f 87 a6 00 00 00 49 8b bb f8 00 00 00 4c 89
0x00007f33371230c7: 4d b8 48 89 ca 4c 89 5d c0 48 89 de 48 8b 07 ff
0x00007f33371230d7: 90 00 01 00 00 48 85 c0 49 89 c2 4c 8b 5d c0 4c
0x00007f33371230e7: 8b 4d b8 0f 84 b0 02 00 00 4c 89 d0 4c 89 d3 48
0x00007f33371230f7: 83 c8 03 49 89 01 41 8b 4d 08 49 8b 45 00 e9 fc
0x00007f3337123107: fe ff ff 66 0f 1f 44 00 00 41 80 7f 48 00 0f 84
0x00007f3337123117: 15 ff ff ff 41 8b 4d 08 89 db 48 d3 e3 49 03 5d
0x00007f3337123127: 00 49 39 5f 20 0f 86 fe fe ff ff 49 8b 57 28 4c
0x00007f3337123137: 89 e0 48 c1 e8 09 48 8b 52 48 c6 04 02 11 e9 e6
0x00007f3337123147: fe ff ff 66 0f 1f 44 00 00 48 c1 e8 03 83 e0 0f
0x00007f3337123157: 41 39 83 00 01 00 00 0f 86 5a ff ff ff 49 8b bb
0x00007f3337123167: f8 02 00 00 48 89 ce 89 55 9c 4c 89 4d a0 4c 89
0x00007f3337123177: 5d b8 48 89 4d c0 e8 3e 1d 67 00 48 85 c0 49 89
0x00007f3337123187: c2 48 8b 4d c0 4c 8b 5d b8 4c 8b 4d a0 8b 55 9c
0x00007f3337123197: 0f 84 21 ff ff ff 48 8d 05 d4 33 d4 00 48 8b 00
Stack slot to memory mapping:
stack at sp + 0 slots: 0x00007f33345efd30 points into unknown readable memory: 90 fd 5e 34 33 7f 00 00
stack at sp + 1 slots: 0x0000000336fe3b15 is an unknown value
stack at sp + 2 slots:
[error occurred during error reporting (inspecting top of stack),SIGSEGV (0xb) at pc=0x00007f3337792aee]
VM_Operation (0x00007f330ae9a460): GenCollectForAllocation,mode: safepoint,requested by thread 0x00007f333021f000
--------------- P R O C E S S ---------------
Threads class SMR info:
_java_thread_list=0x00007f32c44f9210,length=17,elements={
0x00007f3330016000,0x00007f33300b8000,0x00007f33300ba000,0x00007f33300c1800,0x00007f33300c3800,0x00007f33300c5800,0x00007f33300c7800,0x00007f3330102800,0x00007f3330108000,0x00007f33301ff800,0x00007f3330217000,0x00007f333021a000,0x00007f333021b800,0x00007f333021f000,0x00007f3330220000,0x00007f3330226800,0x00007f3330228800
}
Java Threads: ( => current thread )
0x00007f3330016000 JavaThread "CUSTOM_main_sender_thread" [_thread_blocked,id=8097,stack(0x00007f3338c41000,0x00007f3338d42000)]
0x00007f33300b8000 JavaThread "Reference Handler" daemon [_thread_blocked,id=8099,stack(0x00007f33343ef000,0x00007f33344f0000)]
0x00007f33300ba000 JavaThread "Finalizer" daemon [_thread_blocked,id=8100,stack(0x00007f33342ee000,0x00007f33343ef000)]
0x00007f33300c1800 JavaThread "Signal Dispatcher" daemon [_thread_blocked,id=8101,stack(0x00007f33341ed000,0x00007f33342ee000)]
0x00007f33300c3800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked,id=8102,stack(0x00007f33340ec000,0x00007f33341ed000)]
0x00007f33300c5800 JavaThread "C1 CompilerThread0" daemon [_thread_blocked,id=8103,stack(0x00007f3318001000,0x00007f3318102000)]
0x00007f33300c7800 JavaThread "Sweeper thread" daemon [_thread_blocked,id=8104,stack(0x00007f330bbcf000,0x00007f330bcd0000)]
0x00007f3330102800 JavaThread "Service Thread" daemon [_thread_blocked,id=8105,stack(0x00007f330bace000,0x00007f330bbcf000)]
0x00007f3330108000 JavaThread "Common-Cleaner" daemon [_thread_blocked,id=8107,stack(0x00007f330b8cb000,0x00007f330b9cc000)]
0x00007f33301ff800 JavaThread "CUSTOM_gc_process_timer" [_thread_blocked,id=8150,stack(0x00007f330b19f000,0x00007f330b2a0000)]
0x00007f3330217000 JavaThread "CUSTOM_gc_transport_timer" [_thread_blocked,id=8161,stack(0x00007f330b09e000,0x00007f330b19f000)]
0x00007f333021a000 JavaThread "CUSTOM_gc_ublayer_timer" [_thread_blocked,id=8163,stack(0x00007f330af9d000,0x00007f330b09e000)]
0x00007f333021b800 JavaThread "CUSTOM_ping_sender_timer" [_thread_blocked,id=8164,stack(0x00007f330ae9c000,0x00007f330af9d000)]
0x00007f333021f000 JavaThread "CUSTOM_resending_transport_0_timer" [_thread_blocked,id=8167,stack(0x00007f330ad9b000,0x00007f330ae9c000)]
0x00007f3330220000 JavaThread "CUSTOM__sender_thread" [_thread_blocked,id=8169,stack(0x00007f330ac9a000,0x00007f330ad9b000)]
0x00007f3330226800 JavaThread "CUSTOM_udp_receiver_thread" [_thread_blocked,id=8170,stack(0x00007f330ab99000,0x00007f330ac9a000)]
0x00007f3330228800 JavaThread "CUSTOM_handler_receiver_thread" [_thread_blocked,id=8171,stack(0x00007f330aa98000,0x00007f330ab99000)]
Other Threads:
=>0x00007f33300b5000 VMThread "VM Thread" [stack: 0x00007f33344f2000,0x00007f33345f2000] [id=8098]
0x00007f3330105000 WatcherThread [stack: 0x00007f330b9ce000,0x00007f330bace000] [id=8106]
Threads with active compile tasks:
VM state:at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x00007f33300125b0] Threads_lock - owner thread: 0x00007f33300b5000
[0x00007f3330012d90] Heap_lock - owner thread: 0x00007f333021f000
Heap address: 0x0000000080000000,size: 2048 MB,Compressed Oops mode: 32-bit
Narrow klass base: 0x0000000800000000,Narrow klass shift: 3
Compressed class space size: 1073741824 Address: 0x0000000840000000
Heap:
def new generation total 629120K,used 624392K [0x0000000080000000,0x00000000aaaa0000,0x00000000aaaa0000)
eden space 559232K,100% used [0x0000000080000000,0x00000000a2220000,0x00000000a2220000)
from space 69888K,93% used [0x00000000a6660000,0x00000000aa602320,0x00000000aaaa0000)
to space 69888K,28% used [0x00000000a2220000,0x00000000a35a68c0,0x00000000a6660000)
tenured generation total 1398144K,used 251583K [0x00000000aaaa0000,0x0000000100000000,0x0000000100000000)
the space 1398144K,17% used [0x00000000aaaa0000,0x00000000ba04fdb0,0x00000000ba04fe00,0x0000000100000000)
Metaspace used 2965K,capacity 5555K,committed 5632K,reserved 1056768K
class space used 358K,capacity 713K,committed 768K,reserved 1048576K
Card table byte_map: [0x00007f333491e000,0x00007f3334d1f000] _byte_map_base: 0x00007f333451e000
Polling page: 0x00007f3338d56000
Metaspace:
Usage:
Non-class: 4.73 MB capacity,2.55 MB ( 54%) used,2.15 MB ( 45%) free+waste,33.00 KB ( <1%) overhead.
Class: 713.00 KB capacity,358.59 KB ( 50%) used,336.03 KB ( 47%) free+waste,18.38 KB ( 3%) overhead.
Both: 5.42 MB capacity,2.90 MB ( 53%) used,2.48 MB ( 46%) free+waste,51.38 KB ( <1%) overhead.
Virtual space:
Non-class space: 8.00 MB reserved,4.75 MB ( 59%) committed
Class space: 1.00 GB reserved,768.00 KB ( <1%) committed
Both: 1.01 GB reserved,5.50 MB ( <1%) committed
Chunk freelists:
Non-Class: 0 bytes
Class: 0 bytes
Both: 0 bytes
MaxMetaspaceSize: unlimited
CompressedClassSpaceSize: 1.00 GB
CodeHeap 'non-profiled nmethods': size=120032Kb used=924Kb max_used=924Kb free=119107Kb
bounds [0x00007f33203ca000,0x00007f332063a000,0x00007f3327902000]
CodeHeap 'profiled nmethods': size=120032Kb used=2105Kb max_used=2105Kb free=117926Kb
bounds [0x00007f3318e92000,0x00007f3319102000,0x00007f33203ca000]
CodeHeap 'non-nmethods': size=5696Kb used=1101Kb max_used=1138Kb free=4595Kb
bounds [0x00007f3318902000,0x00007f3318b72000,0x00007f3318e92000]
total_blobs=1683 nmethods=1241 adapters=358
compilation: enabled
stopped_count=0,restarted_count=0
full_count=0
Compilation events (20 events):
Event: 31.913 Thread 0x00007f33300c5800 1234 %s 3 cs451.layers.UBLayer::garbageCollect @ 190 (274 bytes)
Event: 31.916 Thread 0x00007f33300c5800 nmethod 1234% 0x00007f3319097610 code [0x00007f3319097ca0,0x00007f331909c1c0]
Event: 31.918 Thread 0x00007f33300c3800 1235 ! 4 java.util.Collections$SynchronizedMap::remove (25 bytes)
Event: 31.924 Thread 0x00007f33300c3800 nmethod 1235 0x00007f33204af510 code [0x00007f33204af6c0,0x00007f33204afb68]
Event: 31.929 Thread 0x00007f33300c3800 1236 %s 4 cs451.layers.UBLayer::garbageCollect @ 190 (274 bytes)
Event: 31.935 Thread 0x00007f33300c5800 1238 3 java.lang.StackStreamFactory$StackFrameTraverser::nextStackFrame (32 bytes)
Event: 31.936 Thread 0x00007f33300c5800 nmethod 1238 0x00007f331909d710 code [0x00007f331909d900,0x00007f331909dd50]
Event: 31.936 Thread 0x00007f33300c5800 1237 3 java.lang.StackStreamFactory$StackFrameTraverser::tryAdvance (114 bytes)
Event: 31.936 Thread 0x00007f33300c5800 nmethod 1237 0x00007f331909de90 code [0x00007f331909e0c0,0x00007f331909e820]
Event: 31.936 Thread 0x00007f33300c5800 1239 3 java.lang.StackStreamFactory::isReflectionFrame (48 bytes)
Event: 31.936 Thread 0x00007f33300c5800 nmethod 1239 0x00007f331909ea90 code [0x00007f331909eca0,0x00007f331909f0f0]
Event: 31.962 Thread 0x00007f33300c3800 nmethod 1236% 0x00007f33204afe10 code [0x00007f33204affe0,0x00007f33204b09a8]
Event: 31.965 Thread 0x00007f33300c5800 1240 3 java.util.regex.Pattern$BmpCharPredicate$$Lambda$25/0x0000000840093840::is (13 bytes)
Event: 31.965 Thread 0x00007f33300c5800 nmethod 1240 0x00007f331909f290 code [0x00007f331909f480,0x00007f331909f8b0]
Event: 31.965 Thread 0x00007f33300c5800 1241 3 java.util.regex.Pattern$BmpCharPredicate::lambda$union$2 (26 bytes)
Event: 31.965 Thread 0x00007f33300c5800 nmethod 1241 0x00007f331909fa10 code [0x00007f331909fbe0,0x00007f331909ff30]
Event: 32.637 Thread 0x00007f33300c3800 1242 4 java.util.HashMap::put (13 bytes)
Event: 32.639 Thread 0x00007f33300c3800 nmethod 1242 0x00007f33204b0f90 code [0x00007f33204b1140,0x00007f33204b1268]
Event: 33.130 Thread 0x00007f33300c5800 1243 3 java.util.LinkedList$ListItr::<init> (47 bytes)
Event: 33.131 Thread 0x00007f33300c5800 nmethod 1243 0x00007f33190a0010 code [0x00007f33190a01e0,0x00007f33190a0440]
GC Heap History (7 events):
Event: 8.747 GC heap before
{Heap before GC invocations=0 (full 0):
def new generation total 629120K,used 559232K [0x0000000080000000,0% used [0x00000000a2220000,0x00000000a6660000)
to space 69888K,0% used [0x00000000a6660000,0x00000000a6660000,0x00000000aaaa0000)
tenured generation total 1398144K,used 0K [0x00000000aaaa0000,0% used [0x00000000aaaa0000,0x00000000aaaa0200,0x0000000100000000)
Metaspace used 2831K,capacity 5554K,reserved 1056768K
class space used 350K,reserved 1048576K
}
Event: 8.992 GC heap after
{Heap after GC invocations=1 (full 0):
def new generation total 629120K,used 69888K [0x0000000080000000,0% used [0x0000000080000000,0x0000000080000000,100% used [0x00000000a6660000,used 101635K [0x00000000aaaa0000,7% used [0x00000000aaaa0000,0x00000000b0de0cf0,0x00000000b0de0e00,reserved 1048576K
}
Event: 16.382 GC heap before
{Heap before GC invocations=1 (full 0):
def new generation total 629120K,used 629120K [0x0000000080000000,0x0000000100000000)
Metaspace used 2840K,reserved 1048576K
}
Event: 16.790 GC heap after
{Heap after GC invocations=2 (full 0):
def new generation total 629120K,100% used [0x00000000a2220000,used 175901K [0x00000000aaaa0000,12% used [0x00000000aaaa0000,0x00000000b5667538,0x00000000b5667600,reserved 1048576K
}
Event: 24.098 GC heap before
{Heap before GC invocations=2 (full 0):
def new generation total 629120K,0x0000000100000000)
Metaspace used 2944K,reserved 1048576K
}
Event: 24.686 GC heap after
{Heap after GC invocations=3 (full 0):
def new generation total 629120K,used 65160K [0x0000000080000000,used 239796K [0x00000000aaaa0000,0x00000000b94cd050,0x00000000b94cd200,reserved 1048576K
}
Event: 35.785 GC heap before
{Heap before GC invocations=3 (full 0):
def new generation total 629120K,reserved 1048576K
}
Deoptimization events (20 events):
Event: 30.817 Thread 0x00007f3330228800 DEOPT PACKING pc=0x00007f33204885bc sp=0x00007f330ab97770
Event: 30.817 Thread 0x00007f3330228800 DEOPT UNPACKING pc=0x00007f331892731f sp=0x00007f330ab976a0 mode 2
Event: 30.963 Thread 0x00007f3330228800 Uncommon trap: trap_request=0xffffffc6 fr.pc=0x00007f3320431198 relative=0x0000000000000a98
Event: 30.967 Thread 0x00007f3330228800 Uncommon trap: reason=bimorphic_or_optimized_type_check action=maybe_recompile pc=0x00007f3320431198 method=java.util.HashMap.getNode(ILjava/lang/Object;)Ljava/util/HashMap$Node; @ 126 c2
Event: 30.967 Thread 0x00007f3330228800 DEOPT PACKING pc=0x00007f3320431198 sp=0x00007f330ab97790
Event: 30.967 Thread 0x00007f3330228800 DEOPT UNPACKING pc=0x00007f331892731f sp=0x00007f330ab97648 mode 2
Event: 31.827 Thread 0x00007f3330217000 DEOPT PACKING pc=0x00007f3319074d1f sp=0x00007f330b19d710
Event: 31.827 Thread 0x00007f3330217000 DEOPT UNPACKING pc=0x00007f331892712b sp=0x00007f330b19cd20 mode 0
Event: 31.904 Thread 0x00007f333021a000 DEOPT PACKING pc=0x00007f331908ed46 sp=0x00007f330b09c6a0
Event: 31.904 Thread 0x00007f333021a000 DEOPT UNPACKING pc=0x00007f331892712b sp=0x00007f330b09bcb0 mode 0
Event: 31.911 Thread 0x00007f333021a000 Uncommon trap: trap_request=0xffffff4d fr.pc=0x00007f33204aeec0 relative=0x00000000000006c0
Event: 31.911 Thread 0x00007f333021a000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007f33204aeec0 method=cs451.layers.UBLayer.garbageCollect()V @ 130 c2
Event: 31.911 Thread 0x00007f333021a000 DEOPT PACKING pc=0x00007f33204aeec0 sp=0x00007f330b09c820
Event: 31.911 Thread 0x00007f333021a000 DEOPT UNPACKING pc=0x00007f331892731f sp=0x00007f330b09c7b8 mode 2
Event: 32.182 Thread 0x00007f3330016000 DEOPT PACKING pc=0x00007f3319061ccb sp=0x00007f3338d40720
Event: 32.182 Thread 0x00007f3330016000 DEOPT UNPACKING pc=0x00007f331892712b sp=0x00007f3338d3fd78 mode 0
Event: 32.637 Thread 0x00007f3330228800 Uncommon trap: trap_request=0xffffffde fr.pc=0x00007f33204885bc relative=0x00000000000008fc
Event: 32.637 Thread 0x00007f3330228800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00007f33204885bc method=java.util.HashMap.putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; @ 91 c2
Event: 32.637 Thread 0x00007f3330228800 DEOPT PACKING pc=0x00007f33204885bc sp=0x00007f330ab97770
Event: 32.637 Thread 0x00007f3330228800 DEOPT UNPACKING pc=0x00007f331892731f sp=0x00007f330ab976a0 mode 2
我在线程之间从来没有死锁,但在GC和线程之间经常没有死锁。在垃圾回收期间,我没有找到完全停止所有线程的方法,因此,我不知道如何防止GC与其他线程死锁。有没有人遇到过这样的事情,您是如何解决的?
非常感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。