Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中访问正在运行的线程_Java_Spring_Multithreading - Fatal编程技术网

如何在java中访问正在运行的线程

如何在java中访问正在运行的线程,java,spring,multithreading,Java,Spring,Multithreading,在我的项目中,我有一堆线程在后台运行 DeamonAlert alertDeamon = new DeamonAlert(tenant.getKey()); DeamonEventTask eventTask = new DeamonEventTask(tenant.getKey()); Thread firstThread = new Thread(alertDeamon,tenant+"eventDeomon");

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

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

取决于您的意思:

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

        Statuses statuses = new Statuses();
        DeamonAlert alertDeamon = new DeamonAlert(tenant.getKey(), statuses);
        DeamonEventTask eventTask = new DeamonEventTask(tenant.getKey(), statuses);
    
  • 您可以从一个线程设置其中的值,然后从另一个线程读取。为多线程使用设计Statuses类:原子变量/同步方法

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

  • 你能详细说明一下吗?你没有完全明白你想要达到的目的。请说得具体一点,如果可能的话,给出一些示例代码“调用线程实例”是什么意思?线程实例只是一个对象,无法调用。然而,它的方法可以。是否要调用线程实例的某个方法?那就去做吧。