相关疑难解决方法(0)

Java中的死锁检测

很久以前,我从Java参考书中保存了一句话:"Java没有处理死锁的机制.它甚至不知道发生了死锁." (Head First Java 2nd Edition,p.516)

那么,它是什么呢?有没有办法在Java中捕获死锁案例?我的意思是,有没有一种方法可以让我们的代码了解发生死锁的情况?

java multithreading deadlock

62
推荐指数
7
解决办法
4万
查看次数

如何获得线程的堆栈跟踪

我有一个多线程的应用程序.有几条消息即将发送到应用程序,并在分离的线程中处理.为此,我使用包java.util.concurrent中的类ThreadPoolExecutor和FutureTask.

偶尔我在应用程序中有一些死锁.当发生死锁时我想中断阻塞线程,我想记录这个线程的堆栈跟踪,以便以后可以解决死锁.

有什么方法可以在Java中找到该线程之外的线程的堆栈跟踪?

java multithreading deadlock stack-trace

9
推荐指数
3
解决办法
1万
查看次数

MarkLogic Java API死锁检测

我们的一个应用程序刚刚遇到了一些令人讨厌的死锁.我很难重新创建问题,因为死锁(或堆栈跟踪)没有立即出现在我的java应用程序日志中.

令我惊讶的是,marklogic java api重试失败的请求(例如,由于死锁).如果您的请求不是多语句请求,这可能是有意义的,否则我不确定它是否确实如此.

因此,请坚持这个死锁问题.我创建了一个简单的代码片段,其中我故意创建了一个死锁.该片段创建一个文档test.xml,然后尝试从两个不同的事务中读取和写入,每个事务都在一个新线程上.

public static void main(String[] args) throws Exception {
        final Logger root = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
        final Logger ok = (Logger) LoggerFactory.getLogger(OkHttpServices.class);
        root.setLevel(Level.ALL);
        ok.setLevel(Level.ALL);

        final DatabaseClient client = DatabaseClientFactory.newClient("localhost", 8000, new DatabaseClientFactory.DigestAuthContext("username", "password"));

        final StringHandle handle = new StringHandle("<doc><name>Test</name></doc>")
            .withFormat(Format.XML);
        client.newTextDocumentManager().write("test.xml", handle);

        root.info("t1: opening");
        final Transaction t1 = client.openTransaction();
        root.info("t1: reading");
        client.newXMLDocumentManager()
            .read("test.xml", new StringHandle(), t1);

        root.info("t2: opening");
        final Transaction t2 = client.openTransaction();
        root.info("t2: reading");
        client.newXMLDocumentManager()
            .read("test.xml", new StringHandle(), t2);

        new Thread(() -> …
Run Code Online (Sandbox Code Playgroud)

java marklogic marklogic-9

6
推荐指数
1
解决办法
191
查看次数

在多线程中找到死锁的原因?

多线程应用程序冻结.也许是因为僵局造成的.如果是,那么我们如何找到死锁的原因?系统地执行此操作的任何工具和策略?

java concurrency multithreading deadlock

4
推荐指数
3
解决办法
7957
查看次数