繁体   English   中英

如何在不使用循环程序和处理程序的情况下安排特定线程中的任务?

[英]How to schedule tasks in a specific thread without using a looper and a handler?

计时器创建自己的线程,而ScheduledThreadPoolExecutor使用池。 他们是否有办法指定无需执行任何代码就可以直接执行任务的线程? 如果这不是一个好主意,请解释原因(线程正在忙碌)。

我对looper-handler方法没有问题,我很好奇。

您可以使用Executors.newSingleThreadScheduledExecutor()使用一个线程创建ScheduledThreadPoolExecutor

(可选)如果希望对单个线程有更多控制,可以将ThreadFactory作为参数传递。 线程工厂的newThread(Runnable)方法被调用每一个执行者希望有一个新的时间Thread应该运行在给定的情况下Runnable (这是不是等同于Runnable传递给执行程序的execute(...) submit(...)schedule(...)方法)。

请注意,您无法重用现有线程,因为通常无法将代码“注入”到已在运行的线程中,这在Qt中是可能的。 在那里,每个线程都有自己的事件队列和计时工具,因此您可以自由决定哪个(已经存在的)线程应该处理您的定时任务(请参阅Qt中的Timers )。

Java中没有现成的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM