如何通过命令提示符暂停和恢复线程用户输入?
我想要一个程序,用户可以让线程从他通过挂起来停止线程的阶段开始运行。
包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 公开您需要的功能。
关于java - 如何通过命令提示符暂停和恢复线程用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8970864/