gpt4 book ai didi

java - 使用 Jackson 编写 JSON 会阻塞我的 TimerTask

转载 作者:行者123 更新时间:2023-11-30 11:54:10 24 4
gpt4 key购买 nike

我想每 5 秒写一些 JSON。我正在使用 Jackson 编写 JSON,但它似乎阻止了我的 TimerTask。如果我不写 JSON,TimerTask 每 5 秒运行一次,但是当我尝试写 JSON 时它被阻止并且只运行一次。我该如何解决这个问题?

public class MyTimerTask extends TimerTask {

public static void main(String[] args) {

Timer timer = new Timer();

// execute MyTimerTask every 5th second
timer.scheduleAtFixedRate(new MyTimerTask(), 1000L, 5 * 1000L);
}

@Override
public void run() {
System.out.println("timertask");

// Write JSON to System.out
ObjectMapper mapper = new ObjectMapper();
try {
mapper.writeValue(System.out, "Hello");
} catch (Exception e1) {
e1.printStackTrace();
}
}
}

这是我的定时器线程堆栈转储:

"Timer-0" prio=6 tid=0x02488000 nid=0x10ec in Object.wait() [0x04a6f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x24577fa8> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0x24577fa8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)

最佳答案

问题出在您对 System.out 的使用上,而不是 Jackson。

关于java - 使用 Jackson 编写 JSON 会阻塞我的 TimerTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com