java线程问题

wodehongseupan 2012-06-28 03:59:44
我在java里起了一个线程,调用一个SO的库,调完之后在该线程里写了个while死循环,while里会sleep(1000),为了是保持该线程一直存在。因为还要接受so返给我的回调。
但奇怪的是,程序开始正常,但运行7、8个小时后,就收不到回调了。就像该线程退出了一样。
大家知道怎么回事吗??
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wodehongseupan 2012-07-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

这个命令要安装了JDK才有,去JDK的bin目录中找找。

Linux的话,可以用另一种方式:
1、首先用 PS 找出 java 的进程ID;
2、然后运行 kill -3 PID;
3、去找javadump文件。
[/Quote]
去哪里找javadump文件呢?在tomcat服务里的文件夹下吗?
api工厂 2012-07-02
  • 打赏
  • 举报
回复
在您的 JDK 安装路径下面呀。

jdk1.6.0_26\bin

楼上已经写的很清楚了么~ 你用这个命令看看你的那个线程还在不在。
巽谷雨 2012-07-02
  • 打赏
  • 举报
回复
求后来人解
fufengrui 2012-06-29
  • 打赏
  • 举报
回复
看看后台或者日志抛什么异常没有,一般是有异常了,或者内存溢出了
MiceRice 2012-06-29
  • 打赏
  • 举报
回复
Windows操作系统吧?

在任务管理器中,检查 java.exe 或 javaw.exe 的进程ID。

然后再命令提示行(cmd)下执行:
jstack -l 进程ID


其实关于jstack如何使用,Google下就有了。
MiceRice 2012-06-29
  • 打赏
  • 举报
回复
这个命令要安装了JDK才有,去JDK的bin目录中找找。

Linux的话,可以用另一种方式:
1、首先用 PS 找出 java 的进程ID;
2、然后运行 kill -3 PID;
3、去找javadump文件。
wodehongseupan 2012-06-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

Windows操作系统吧?

在任务管理器中,检查 java.exe 或 javaw.exe 的进程ID。

然后再命令提示行(cmd)下执行:
jstack -l 进程ID


其实关于jstack如何使用,Google下就有了。
[/Quote]
是linux操作系统,我在linux终端下用jstack命令提示“无此命令”,这个是怎么回事啊??
wodehongseupan 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
可能的原因比较多,比如:发生异常了、网络断了、网络阻塞了等等。

最好自己把JVM的线程堆栈弄出来看看,线程死在什么位置了,比如用 jstack.exe
[/Quote]
如何查看jvm的线程栈啊,我是个新手,能说的详细点吗?谢谢啊
MiceRice 2012-06-28
  • 打赏
  • 举报
回复
可能的原因比较多,比如:发生异常了、网络断了、网络阻塞了等等。

最好自己把JVM的线程堆栈弄出来看看,线程死在什么位置了,比如用 jstack.exe

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧