threadmanager.java

来自「一个用java编写的远程控制程序,内有使用说明,包括服务端和客户端.」· Java 代码 · 共 51 行

JAVA
51
字号
package org.jstudio.tools.pcanywhere;

import java.util.*;
import java.net.InetAddress;

/**
 * <p>Title: 线程管理</p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class ThreadManager {
    private static HashMap threadMap = new HashMap();

    public static void start(Class cls,Class[] argTypes,Object[] args)throws Exception{
        ThreadServer t = (ThreadServer)threadMap.get(cls.getName());
        if(t==null){
            t = (ThreadServer)(cls.getConstructor(argTypes).newInstance(args));
            t.start();
            System.out.println(cls.getName() + "is start ");
            threadMap.put(cls.getName(),t);
        }
    }

    public static void quit(Class cls){
        ThreadServer t = (ThreadServer)threadMap.get(cls.getName());
        if(t!=null){
            t.quit();
            remove(cls);
            System.out.println(cls.getName() + "is quit ");
        }
    }

    public static void remove(Class cls){
        if(threadMap.containsKey(cls.getName())){
            threadMap.remove(cls.getName());
            System.out.println(cls.getName() + "is remove ");
        }
    }
}

abstract class ThreadServer extends Thread{
    public abstract void quit();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?