Java多线程和超时

发布于 2024-11-25 10:12:15 字数 230 浏览 0 评论 0原文

我正在尝试使用 ScheduledThreadPoolExecutor 对我的 java 应用程序进行多线程处理。我通过将任务提交到未来列表,然后尝试从未来列表中检索结果来做到这一点。然而,由于某种原因,当我运行 htop 时,它仍然只使用计算机上的一个核心。

此外,进程有时会挂起,我怀疑这是因为我正在使用的库,那么什么是基本上实现时间限制的好方法,之后线程使用新对象重新启动?

谢谢。

I'm trying to multithread my java application with ScheduledThreadPoolExecutor. I do this by submitting the tasks to the future list and then try to retrieve the results from the future list. However, for some reason, it still only utilizes one core on the computer when I run htop.

In addition, the processes sometimes hang, which i suspect to be because of the libraries i'm using, so what would be a good way to implement essentially a time limit, after which the thread restarts with a new object?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薆情海 2024-12-02 10:12:15

你不能安全地杀死一个线程,你只能中断它,这样它就可以自行关闭。如果您需要终止正在运行库的线程,则需要在一个单独的进程中运行。

要使用多个 CPU,您需要执行多个 CPU 密集型任务。如果您一次运行一项任务,则最多将使用一个核心。

You cannot kill a thread safely you cna only interrupted is so it cna shut itself down. If you need to kill a thread running alibrary you need to run in is a seperate process.

To use more than one CPU you need to have more than one CPU intensive task. If you are running one task at a time, you will use at most one core.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文