java - Java的Timer任务保证不会并发运行吗?

标签 java concurrency timer

new Timer(...).schedule(task)

task 是否保证在任何给定时间由单个线程运行?

最佳答案

来自Javadoc

Corresponding to each Timer object is a single background thread that is used to execute all of the timer's tasks, sequentially. Timer tasks should complete quickly. If a timer task takes excessive time to complete, it "hogs" the timer's task execution thread. This can, in turn, delay the execution of subsequent tasks, which may "bunch up" and execute in rapid succession when (and if) the offending task finally completes.

所以,是的,您得到了一个新线程(与调用者的线程分开)。该计时器中的每个任务共享同一个线程。

关于java - Java的Timer任务保证不会并发运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1237804/

相关文章:

java - 假设在java中1年等于360天,如何将n天显示为日期?

java - 多个对象如何在没有实例引用的情况下向对象发送通知(在java中)?

java - GWT-如何在其他项目中对一个项目进行 RPC 调用(使用服务器端)?

c++ - thread::hardware_concurrency() 作为模板参数

android - 计时器结束后如何播放WAV?

java - Android/java - 在 onClick 中使用计时器循环

notifyAll() 方法上的 java.lang.IllegalMonitorStateException

objective-c - 是否可以在操作系统或编程语言级别强制执行无共享多线程? (OSX, Objective-C )

groovy - 为什么 DataFlow 变量只能分配一次

java - 无法在 [java] 中执行计时器