簡體   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