java - 如何通过命令提示符暂停和恢复线程用户输入?

标签 java

如何通过命令提示符暂停和恢复线程用户输入?

我想要一个程序,用户可以让线程从他通过挂起来停止线程的阶段开始运行。

包foo;

导入java.util.Vector;

公共(public)类ThreadTest{

private Vector<String> threadNames = new Vector<String>();

public static void main(String[] args) {

    ThreadTest test = new ThreadTest();

    test.threadTest(Integer.parseInt(args[0]));

    System.out.println(test.threadNames);

}

private void threadTest(int numOfThreads) {

    Thread[] threads = new Thread[numOfThreads];

    for (int i = 0; i < threads.length; i++) {

        threads[i] = new foo.ThreadTest.MyThread();

        threads[i].start();

    }

    for (int i = 0; i < threads.length; i++) {

        try {

            threads[i].join();

        } catch (InterruptedException ignore) {}

    }

}

class MyThread extends Thread {

    public void run() {

        for (int i = 0; i < 1000000; i++) {

            i = i + 0;

        }

        threadNames.add(getName());

    }

}

}

最佳答案

您有多种选择。所有这些都需要某种RPC 。最好的方法可能基于 JMX .

特别是,请查看 ThreadMXBean 上提供的所有内容。 (JMX)。现在,这并没有为您提供听起来像您正在寻找的确切功能,但您可以编写自己的函数来提供您需要的扩展功能。

此外,JMX 通常是通过 jconsole 之类的东西访问的 - 这是基于 GUI 的。但是,JMX 只是一个 API,您可以编写自己的基于控制台的客户端,通过 CLI 公开您需要的功能。

另请参阅:calling java methods from a terminal

关于java - 如何通过命令提示符暂停和恢复线程用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8970864/

相关文章:

java - 如何让 Hibernate 4 停止抛出 "Deleting detached instance"?

java - Android如何在屏幕截图中捕获阴影

java - 如何在java中使用不同的泛型构造构造函数

java - 如何在通用静态方法中获取类型的字符串表示形式

java - 属性文件中的正则表达式为 False

java - 为什么这个程序不允许我划分

java - 在android studio中检索if/else子句的字符串

java - 在 persistence.xml 中引用具有 JNDI 名称的数据源

java - java中如何解决这个 'cannot find symbol'

Java泛型类参数类型推断