哪个更有效率? - 单个线程和 n 个广播接收器或 n 个独立线程
Which is more efficient? - A single thread and n broadcast receivers OR n independent threads
我有一个场景,其中 'N' 个独立代码片段需要以固定间隔重复 运行 个。以下哪一项会更有效率?
一个线程以固定间隔重复发送广播,并为此操作注册了 N 个 BroadcastReceivers。
N 个线程运行独立并运行重复代码。
或者有更好的方法吗?
我建议使用单个后台线程,但不建议使用您建议的方法。
根据您的情况:
如果应用程序在前台时要频繁执行代码,我会创建一个与工作线程关联的处理程序。然后使用 Handler.postDelayed() 到 post 您的工作以供将来执行。当 Runnable 完成执行时,它应该重新 post 本身。
如果要在后台执行代码,请使用AlarmManager 安排工作由IntentService 执行,并在可能的情况下使用不精确的重复,以便系统将批处理后台工作以节省电池寿命。 IntentService 将自动创建一个后台线程来处理您的工作并按顺序处理 Intent,然后在完成后停止。
我有一个场景,其中 'N' 个独立代码片段需要以固定间隔重复 运行 个。以下哪一项会更有效率?
一个线程以固定间隔重复发送广播,并为此操作注册了 N 个 BroadcastReceivers。
N 个线程运行独立并运行重复代码。
或者有更好的方法吗?
我建议使用单个后台线程,但不建议使用您建议的方法。 根据您的情况:
如果应用程序在前台时要频繁执行代码,我会创建一个与工作线程关联的处理程序。然后使用 Handler.postDelayed() 到 post 您的工作以供将来执行。当 Runnable 完成执行时,它应该重新 post 本身。
如果要在后台执行代码,请使用AlarmManager 安排工作由IntentService 执行,并在可能的情况下使用不精确的重复,以便系统将批处理后台工作以节省电池寿命。 IntentService 将自动创建一个后台线程来处理您的工作并按顺序处理 Intent,然后在完成后停止。