线程

java – ExecutorService,如何知道所有线程何时完成而不阻塞主线程?

我有一个多线程实现,我创建一个ExecutorService并提交要执行的任务,我想知道所有线程被提交的时间已经完成而没有阻塞主线程和UI.我已经尝试过ExecutorService.awaitTermination()但它阻止了主线程和UI.我搜索了很多,但我似乎无法找到一种优雅的方式来做到这一点.我正在考虑创建另一个线程来计算完成的线程数量,并在它们全部完成时启动一个事件,但这不是一个好方法,

.net – 如何在服务停止的多线程Windows服务中停止工作线程

解决方法的确,应该避免中止.最好给他们一些时间优雅地退出–也许在超时后可能会考虑中止他们–但最终,服务停止可以通过杀死进程来做到这一点.我会尝试在我的队列中发出一个“冲洗和退出”的信号–很像“关闭”方法here,但是在完成时有一些信号.如果你诉诸中止–认为这个过程是致命的.尽快杀死它

Java – 停止ExecutorService中的所有任务

我有一些执行器服务来安排本地任务,如读取文件,连接到数据库等.这些进程执行大量的日志记录,这是基于有许多线程并发运行的事实,将自己的东西写入日志.现在,在某个时间点可以引发异常,该异常到达捕获所有异常的主要方法.然后我关闭所有服务并取消每个任务,希望阻止所有进一步的消息到日志.不幸的是,在关闭所有内容后,这些消息仍然显示出来……

java – guava-libraries:是Iterators.cycle()线程安全吗?

假设我有以下类:如果Foo的一个实例被两个线程同时访问,我需要每个线程从iterator.next()获取一个不同的值.bar()方法是否必须同步?还是iterator.next()保证线程安全?在这个例子中,我使用一个ArrayList作为底层的Iterable.循环迭代器的线程安全性是否取决于具体的可迭代实现?谢谢.解决方法Guava中几乎没有任何东西保证线程安全,除非这样记录.您不必同步整个条形法,但您应该将该调用包装到同步块中的iterator.next()中.例如:

多线程 – Delphi类变量是否具有全局或线程本地存储?

我的猜测是类变量在存储中是真正的全局变量.但我想知道是否是这种情况,或者它们是否是存储中的线程–每个线程一次实例.谁知道?编辑:将“范围”更改为“存储”,因为这实际上是正确的术语,以及我所追求的解决方法是的,类变量是全局范围的.有关如何实现threadvars的详细信息,请查看RTL源代码.在Win32下,每个线程都可以在创建线程时自动为其分配一块内存.这个额外的数据区域用于包含您的threadvars.

如何配备Java应用程序?

我在哪里可以找到一些权威参考?JVM规范似乎没有这个.如果我从不使用事件调度线程,例如在控制台应用程序中,我可以禁用它来节省一些cpu周期吗?

java – 如何在运行时更改android中的睡眠/计时器线程的延迟?

我试图做的是每次计数器变为5的倍数时减少定时器延迟.但是,一旦代码进入if块,它就会停止递增计时器.我无法理解发生了什么.这是代码解决方法Thread.sleep()不保证.这意味着它可能会或可能不会因您出于此问题的主题之外的各种原因而在您期望的时间内睡眠.如果你在网上搜索“android中的计时器”,你可能会登陆这两个:https://developer.android.com/referenc

为什么单线程java程序有这么多线程?

我有一个java程序,它有13个线程,但只有一个是99%的cpu使用率并且已经运行了大约24小时.其他人的cpu使用率为0.0%,显示TIME为0:00.0到0:12.82,其中一个为3:51.48.该程序旨在成为单线程程序,所以我想知道为什么其他线程在那里?),这是单线程并显示相同类型的线程使用…