有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

spring如何访问java中运行的线程

在我的项目中,我有一堆线程在后台运行

            DeamonAlert alertDeamon = new DeamonAlert(tenant.getKey());
            DeamonEventTask eventTask = new DeamonEventTask(tenant.getKey());
            Thread firstThread = new Thread(alertDeamon,tenant+"eventDeomon");
            Thread secondThread = new Thread(eventTask, tenant+ "alertDeamon");
            firstThread.start();
            secondThread.start();

在运行时,我需要在线程的某些部分调用每个线程实例 我的申请书(已经写好了)。我怎样才能达到这个不同的标准


共 (1) 个答案

  1. # 1 楼答案

    取决于你的意思:

    1. 如果要将数据传递给线程,可以使用共享对象:

          Statuses statuses = new Statuses();
          DeamonAlert alertDeamon = new DeamonAlert(tenant.getKey(), statuses);
          DeamonEventTask eventTask = new DeamonEventTask(tenant.getKey(), statuses);
      

    你可以从一个线程设置其中的值,然后从另一个线程读取。为多线程使用设计Statuses类:原子变量/同步方法

    1. 如果希望将代码传递给要执行的线程,可以将前面的逻辑与可运行实例的集合一起使用。但在这种情况下,最好使用ExecutorService。这些都是为这种情况而设计的,您有N个线程,可以传递可运行/可调用的实例来执行