我想按照顺序在我的线程中运行许多任务,这是我的应用程序的主线程:
@Component
public class LogExtractorApp extends CommonApp implements Runnable {
UDPReceiver receiver = new UDPReceiver();
public static Map<String, Entity> select;
public static List<String> pdomain;
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
@Resource
MessagesCounts counters;
@Resource
DbUpdating update;
@Resource
DeleteData delete;
@Resource
ExcludeDomain domain;
@Override
public void run() {
select = counters.main();
pdomain = domain.main();
ExecutorService service = Executors.newCachedThreadPool();
service.execute(receiver);
scheduler.scheduleAtFixedRate(update, 5, 5, TimeUnit.MINUTES);
service.execute(delete);
}
}
当我启动应用程序时我想要的是以下内容:
- 调用计数器的主要方法。
- 调用域的主要方法。
- 启动线程“接收器”,该线程从远程服务器永久接收数据。
- 启动一个计划的线程以每 5 分钟更新一次数据库。
- 回忆一下计数器的主要方法。(我在这里提到映射“select”用于线程“receiver”调用的方法)。
- 启动线程“delete”以删除数据库中早于 1 天的所有数据。
*我当然希望三线永久转动*
我的问题:步骤 1、2、3、4 工作正常,但我不知道如何告诉我的应用程序每次在“更新”线程后调用“计数器”的主要方法来更新我的地图的值( “选择”)。对于“删除”线程,我曾经按照上面代码中显示的方式添加它,但它不是这样工作的。我很感激对我的 2 个问题的任何建议,如果我必须添加任何其他代码问题,请通过评论告诉我。
谢谢!