如何多次命名一个Thread并在Java中使用它

时间:2016-05-31 06:54:31

标签: java multithreading threadpool declare

我有一个类中有一个可运行的线程。我同时向该类发送了一个以上的变量。该类具有run()方法,并为从另一个类发送的变量启动自己的线程。 在一些进程之后,我需要使用中断来停止线程,但是我必须指出我想要停止的线程的名称(例如MyThread.interrupt())。问题是,我每次都在类中创建具有相同对象名称的线程。所以我必须每次都以不同的方式命名这个线程对象,并以它的名字来阻止它。但我不知道如何......这是我的代码;

public class KasaThread  {

public static Thread till ;

public static String [] table_list_kasa; 


public  static void get (final String IP,final String MagID){


     till = new Thread () {



            public void run () {


                if(IP != null){


                try{
                    ...
                    ...
                    ...
                    }catch(Exception e} {}

在另一个类中,我通过它的名称来中断这个线程,如(until.interrupt()).. 但正如我所说,在这个类中创建的每个线程都具有相同的名称(直到)。

如何解决这个问题?

提前致谢。

3 个答案:

答案 0 :(得分:1)

我认为您可以使用methods setName(String name)getName() +某些计数器来解决此问题。

答案 1 :(得分:1)

解决这个问题的方法是在另一个类中保存一个HashMap(或者你喜欢的任何其他ID),并使这个实现Runnable,这样你就可以控制另一个类中的线程。

答案 2 :(得分:0)

您可以将帖子放在ArrayListLinkedList中。如果您确实希望能够按名称访问它们,则可以使用Map<String, Thread>

你想同时停止所有线程吗?如果是这样,您可以为该类添加stop()方法。它可能看起来像这样:

public void stop() {
    for (Thread thread : threads) {
        thread.interrupt()
    }
}