线程转储中的线程信息

时间:2015-12-22 12:36:20

标签: java multithreading nio

我有一个独特的问题,发生在用户的系统中,这在任何其他系统中都是不可再现的。系统不会崩溃。

所以这是我的线程模型。 我有一个主SWT线程,触发几个守护程序线程,其中一个守护程序线程(Thread-1),执行一些操作,然后执行一些文件操作,如获取文件属性视图和检查文件属性。日志仅在执行文件操作之前打印。

我接受了一个线程转储,但奇怪的是没有在那里列出thread-1守护进程,所以唯一的原因可能就是这个线程1已经完成了吗?但是如果它完成了它应该打印文件操作相关的日志。

这是文件操作部分的代码,是可疑的

UserDefinedFileAttributeView fileAttributeView = Files.getFileAttributeView(fullPath, UserDefinedFileAttributeView.class);
List<String> userAttributes = fileAttributeView.list();
if (userAttributes.contains("id")) {
    byte[] b = (byte[]) Files.getAttribute(fullPath, "id");
    String objectId = new String(b, "UTF-8");
    return objectId;
}

我实现了适当的异常处理,以便打印thread-1中的任何错误。我现在迷失了想法。有什么可以做的吗? 无论如何,上述文件API调用是否会崩溃或被阻止?

我知道这个场景现在有点假设,而不是显示的代码,但由于场景是独一无二的,所以我无能为力。

0 个答案:

没有答案