利用java visualVm检测的结果:
"ActiveMQ Data File Writer" - Thread t@7134
java.lang.Thread.State: WAITING
at java.lang.Object.wait(Native Method)
- waiting on <24d32e7b> (a org.apache.activemq.kaha.impl.async.DataFileAppender$1)
at java.lang.Object.wait(Object.java:485)
at org.apache.activemq.kaha.impl.async.NIODataFileAppender.processQueue(NIODataFileAppender.java:79)
at org.apache.activemq.kaha.impl.async.DataFileAppender$2.run(DataFileAppender.java:227)
Locked ownable synchronizers:
- None
"ActiveMQ Scheduler" - Thread t@7135
java.lang.Thread.State: TIMED_WAITING
at java.lang.Object.wait(Native Method)
- waiting on <50385eba> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:509)
at java.util.TimerThread.run(Timer.java:462)
Locked ownable synchronizers:
- None
"ActiveMQ Transport Server Thread Handler: tcp://127.0.0.1:61618" - Thread t@7155
java.lang.Thread.State: TIMED_WAITING
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <26751317> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:424)
at org.apache.activemq.transport.tcp.TcpTransportServer$1.run(TcpTransportServer.java:339)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
"DefaultQuartzScheduler_Worker-5" - Thread t@1531
java.lang.Thread.State: TIMED_WAITING
at java.lang.Object.wait(Native Method)
- waiting on <7ffacd00> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:528)
Locked ownable synchronizers:
- None
"ExpiringMapExpirer-1" - Thread t@2751
java.lang.Thread.State: TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at org.apache.mina.util.ExpiringMap$Expirer.run(ExpiringMap.java:302)
at java.lang.Thread.run(Thread.java:662)
Locked ownable synchronizers:
- None
"HouseKeeper" - Thread t@9210
java.lang.Thread.State: TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:46)
Locked ownable synchronizers:
- None
"QuartzScheduler_QuartzScheduler-NON_CLUSTERED_MisfireHandler" - Thread t@8712
java.lang.Thread.State: TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3914)
Locked ownable synchronizers:
- None
"QuartzScheduler_Worker-1" - Thread t@6735
java.lang.Thread.State: TIMED_WAITING
at java.lang.Object.wait(Native Method)
- waiting on <33997429> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:528)
Locked ownable synchronizers:
- None
请问如何解决?
猜测:"ActiveMQ Data File Writer" 是在往队列里面写的时候多个线程强资源导致的!
请问,
1.如果我在往消息队列文件里面写消息的时候加上同步(synchronized)会对效率造成很大影响么?
2.想在消费消息的时候也加上同步,,是否效率就更糟糕了?
消息队里高峰期并发数大约 5000!
跪求大侠们的帮助!!!!!!!!!!!!!!!!!!!!!!