重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
查看java线程:ps aux | grep java
创新互联公司专业为企业提供文昌网站建设、文昌做网站、文昌网站设计、文昌网站制作等企业网站建设、网页设计与制作、文昌企业网站模板建站服务,十载文昌做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
杀死指定线程:kill -9 进程id
杀死所有java线程: killall -9 java
在java中有调用外部程序的类,Runtime.getRuntime().exec("./**.exe");此函数返回的是一个Process 对象,该对象在创建后,可以对它进行 destroy () 杀掉子进程、 waitFor () 导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。 而你想要的屏蔽空格的问题,在批处理中可以把整个命令用双引号包起来就可以避免了。
java调用外部程序类Runtime.getRuntime().exec("./**.exe");函数返Process 象该象创建进行 destroy () 杀掉进程、 waitFor () 导致前线程等待必要直要等由该 Process 象表示进程已经终止 想要屏蔽空格问题批处理整命令用双引号包起避免
解决这个问题,要看这个进程是java程序自定义的进程,还是操作系统的进程,操作系统的进程,又可以分为windows进程和Linux进程
一、针对操作系统的进程:
1,首先java用户,要具有操作进程的权限
2. 针对windows操作系统的进程,比如QQ进程:
String command = "taskkill /f /im QQ.exe";
Runtime.getRuntime().exec(command);
其中:taskkill 是命令名称,/f /im 是参数,QQ.exe是进程的可执行文件。
3.针对Linux操作系统
String command = "kill /f /im QQ.exe";
Runtime.getRuntime().exec(command);
二、在Java程序中自定义的进程
思路:在线程中设置一个标志变量,当这个变量的值在外界被改变的时候,有机会结束运行的线程
public class T {
public static void main(String[] args) {
// 启动线程
MyThread thread = new MyThread();
new Thread(thread).start();
// 你的其它的工作,此时线程在运行中
// 你不想让线程干活了,停掉它
// 注意,这只是一个标志,具体线程何时停,并不能精确控制
thread.allDone = true;
}
}
class MyThread implements Runnable {
boolean volatile allDone = false;
public void run() {
// 每次循环都检测标志
// 如果设置停止标志时已经在循环里
// 则最长需要等待一个循环的时间才能终止
while (!allDone) {
// 循环里的工作
}
}
}