死循环记录

简介: 死循环记录

"ShutdownHook" #14 prio=5 os_prio=0 tid=0x00007fc689277000 nid=0x21d6 runnable [0x00007fc65b5fc000]

  java.lang.Thread.State: TIMED_WAITING (parking)

       at sun.misc.Unsafe.park(Native Method)

       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:338)

       at com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:136)

       at com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:105)

       at com.lmax.disruptor.RingBuffer.next(RingBuffer.java:246)

       at com.lingyu.common.message.BalanceBusinessExecutor$ExecutorPoolGroup$Executor.execute(BalanceBusinessExecutor.java:156)

       at com.lingyu.game.service.event.EventManager.asyncCall(EventManager.java:84)

       at com.lingyu.game.service.event.AbEvent.advancedAsyncCall(AbEvent.java:114)

       at com.lingyu.game.service.event.AbEvent.dispatch(AbEvent.java:73)

       at com.lingyu.game.service.event.RoleLogoutEvent.publish(RoleLogoutEvent.java:85)

       at com.lingyu.game.service.role.RoleManager.nodeExit(RoleManager.java:872)

       at com.xianling.public_.nodecontrol.service.impl.NodeControlServiceImpl.nodeExitOnServerClose(NodeControlServiceImpl.java:64)

       at com.lingyu.game.GameServerService.onStop(GameServerService.java:480)

       at com.lingyu.common.core.AbstractService.stop(AbstractService.java:98)

       at com.lingyu.common.core.AbstractService$ShutdownThread.run(AbstractService.java:29)



"SIGTERM handler" #2036 daemon prio=9 os_prio=0 tid=0x00007fc68d280800 nid=0x21d2 in Object.wait() [0x00007fc6591fe000]

  java.lang.Thread.State: WAITING (on object monitor)

       at java.lang.Object.wait(Native Method)

--

       at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:106)

       at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)

       at java.lang.Shutdown.runHooks(Shutdown.java:123)

       at java.lang.Shutdown.sequence(Shutdown.java:167)

       at java.lang.Shutdown.exit(Shutdown.java:212)

       - locked <0x0000000706d04820> (a java.lang.Class for java.lang.Shutdown)

       at java.lang.Terminator$1.handle(Terminator.java:52)

       at sun.misc.Signal$1.run(Signal.java:212)

       at java.lang.Thread.run(Thread.java:756)



baofeng

"nioEventLoopGroup-5-15" #84 prio=10 os_prio=0 tid=0x00007fcb51ec4800 nid=0x1fc0 runnable [0x00007fcb485fe000]

  java.lang.Thread.State: RUNNABLE

       at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)

       at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)

       at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)

       at sun.misc.Unsafe.park(Native Method)

       - parking to wait for  <0x00000006b806e078> (a java.util.concurrent.CountDownLatch$Sync)

       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)

       at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)

       at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)

       at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:277)

       at com.lingyu.common.io.Session.readRequest(Session.java:160)

       at com.lingyu.common.io.Session.sendRPCWithReturn(Session.java:258)

       at com.lingyu.game.GameNetworkDataSource.loadDataList(GameNetworkDataSource.java:68)

       at com.lingyu.game.GameNetworkDataSource.loadData(GameNetworkDataSource.java:59)

       at com.lingyu.noark.data.accessor.network.NetworkDataAccessor.load(NetworkDataAccessor.java:71)

       at com.lingyu.noark.data.repository.OrmRepository.load(OrmRepository.java:83)

       at com.lingyu.noark.data.cache.impl.UniqueDataCacheImpl$2.load(UniqueDataCacheImpl.java:53)

       at com.lingyu.noark.data.cache.impl.UniqueDataCacheImpl$2.load(UniqueDataCacheImpl.java:49)

       at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)

       at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)

       at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)

       - locked <0x00000006b806dba0> (a com.google.common.cache.LocalCache$StrongAccessEntry)

       at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)

       at com.google.common.cache.LocalCache.get(LocalCache.java:3937)

       at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)

       at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)

       at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4830)

       at com.lingyu.noark.data.cache.impl.UniqueDataCacheImpl.load(UniqueDataCacheImpl.java:130)

       at com.lingyu.noark.data.repository.UniqueCacheRepository.cacheLoad(UniqueCacheRepository.java:44)

       at com.lingyu.game.service.role.RoleManager.getRole(RoleManager.java:508)

at com.lingyu.game.service.role.RoleManager.nodeExit(RoleManager.java:803)

       at com.xianling.public_.nodecontrol.service.impl.NodeControlServiceImpl.nodeExitOnServerClose(NodeControlServiceImpl.java:67)

       at com.lingyu.game.CrossServerService.onStop(CrossServerService.java:235)

       at com.lingyu.common.core.AbstractService.stop(AbstractService.java:97)

       at com.lingyu.common.core.AbstractService$ShutdownThread.run(AbstractService.java:28)

目录
相关文章
|
7月前
|
监控 测试技术 程序员
解决线程死循环问题的有效方法
作为开发者想必都清楚,多线程应用程序的开发为我们日常开发工作中提供了并发执行任务的能力,但线程死循环问题却是一个常见而令人头疼的挑战,因为线程死循环可能导致系统的不稳定性、资源浪费以及应用程序的异常运行,所以准确地定位和妥善处理线程死循环现象,并在编码阶段就避免潜在风险,成为开发人员必须面对的重要问题,线程死循环问题的解决不仅有助于提高系统的稳定性和可用性,还能优化资源利用和提升应用程序的性能,通过采取适当的预防和处理措施,开发人员能够避免线程陷入无尽的循环,并及时发现和解决潜在问题。那么本文就来分享一下关于如何处理线程死循环问题,以及如何在编码阶段规避潜在风险。
246 2
解决线程死循环问题的有效方法
|
7月前
|
C语言
用brdak语句提前终止循环
用brdak语句提前终止循环
71 1
|
7月前
避免循环死循环
避免循环死循环
58 0
|
7月前
|
NoSQL
线程死循环的定位方法
线程死循环的定位方法
103 2
|
Web App开发 存储
用9种办法解决 for 循环取 i
用9种办法解决 for 循环取 i
106 0
三个线程循环顺序打印
三个线程循环顺序打印
85 0
|
编译器 C语言 C++
数组越界访问打印后为什么会陷入死循环
数组越界访问打印后为什么会陷入死循环
98 0
|
调度
leetcode 线程题 1114. 按序打印
leetcode 线程题 1114. 按序打印