java - java.util.Timer 中 timer.schedule() 队列的池大小是多少
问题描述
可以安排多少任务稍后调用?对此有任何限制吗?我看不到任何地方指定的最大限制。示例:我可以安排 1000000 个任务在 10 小时后执行吗?我将安排它们只是为了在执行任务之前通过将它们添加到队列中来延迟。
解决方案
从理论上讲,您可以安排无限数量的TimerTask
s -Timer
将任务存储在一个TimerTask
数组中,如果它填满,该数组的大小会加倍(https://github.com/AdoptOpenJDK/openjdk-jdk8u/blob/master/jdk/src/共享/类/java/util/Timer.java#L596)。
但请注意, aTimer
仅使用一个后台线程来执行所有计划任务(https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/Timer.html):
对应于每个 Timer 对象的是单个后台线程,用于按顺序执行所有计时器的任务。
因此,如果您安排数千个任务同时运行,它们将按顺序执行。
推荐阅读
- terraform-provider-aws - Terraform 错误 - 错误:需要参数或块定义
- javascript - 如何使按钮之间的空间无法突出显示
- java - java - 如何在java类中获取层列表项ID?
- python - 为什么这个 tensorflow.keras 代码会占用大量内存?
- javascript - 为什么即使数据库本身为真,MySQL 也会向客户端发送一个假布尔值?
- vb.net - DataGridView 数据源集列
- conda - conda build - 添加大量测试数据的推荐方法
- python - Python 一班带功能
- ruby-on-rails - 如果在 api 中创建失败,页面应该在哪里重定向
- asp.net-web-api - Automapper 映射两个不同结构的列表类以及成员显式映射