java GUI几秒钟没有响应

Bas*_*ien 2 java user-interface multithreading thread-safety

我们有一个java客户端/服务器应用程序,其GUI定期(每半小时)平均2到10秒无响应.点击不同的按钮只会在几秒钟的挂起时间后生效.

我首先想到有一个GC问题,但调查证明这方面没有任何问题.

我更确信这是一个线程问题,图形线程在某些时刻会被阻塞.

如何检查图形线程的状态以查看我的日志中的"无响应"?我想我可以从一个不同的线程每隔一秒左右检查它的状态,但是怎么做呢?要轮询哪个变量?

关于如何解决这个问题的任何其他想法?

谢谢

Thi*_*ilo 5

您可以kill -QUIT向Java进程发出一个(以及在Windows上等效的东西),这将导致所有线程将其堆栈跟踪转储到STDOUT,这样您就可以看到正在发生的事情.这也显示了哪些线程持有锁(同步块)以及哪些线程正在等待.

  • @Bastien:`kill -QUIT`不会停止GUI; 它只是转储有关每个正在运行的线程的信息. (2认同)