Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用线程实现一个简单的java程序 import java.util.Random; 公共类ThreadLogic实现可运行{ 私有字符串名称; 私人整数时间; private Random rand=new Random(); 公共线程逻辑(字符串名称){ this.name=名称; this.time=rand.nextInt(1000); } 公开募捐{ 试一试{ System.out.printf(“%s正在为%d休眠\n”、this.name、this.time); 线程。睡眠(这次); System.out.printf(“%s已完成。\n”,此.name); }捕获(例外情况除外){ 例如printStackTrace(); } } 公共静态void main(字符串[]args){ 线程t1=新线程(新线程逻辑(“线程1”); 线程t2=新线程(新线程逻辑(“线程2”)); 线程t3=新线程(新线程逻辑(“线程3”); t1.start(); //t1.停止(); t2.start(); t3.start(); t1.停止(); System.out.println(“线程-1的状态:“+”+t1.getState()); System.out.println(“线程状态-2”+“”+t2.getState()); System.out.println(“线程状态-3”+“”+t3.getState()); System.out.println(“isalive:+t1.isalive()); System.out.println(“isalive:+t2.isalive()); System.out.println(“isalive:+t3.isalive()); } }_Java_Multithreading - Fatal编程技术网

尝试使用线程实现一个简单的java程序 import java.util.Random; 公共类ThreadLogic实现可运行{ 私有字符串名称; 私人整数时间; private Random rand=new Random(); 公共线程逻辑(字符串名称){ this.name=名称; this.time=rand.nextInt(1000); } 公开募捐{ 试一试{ System.out.printf(“%s正在为%d休眠\n”、this.name、this.time); 线程。睡眠(这次); System.out.printf(“%s已完成。\n”,此.name); }捕获(例外情况除外){ 例如printStackTrace(); } } 公共静态void main(字符串[]args){ 线程t1=新线程(新线程逻辑(“线程1”); 线程t2=新线程(新线程逻辑(“线程2”)); 线程t3=新线程(新线程逻辑(“线程3”); t1.start(); //t1.停止(); t2.start(); t3.start(); t1.停止(); System.out.println(“线程-1的状态:“+”+t1.getState()); System.out.println(“线程状态-2”+“”+t2.getState()); System.out.println(“线程状态-3”+“”+t3.getState()); System.out.println(“isalive:+t1.isalive()); System.out.println(“isalive:+t2.isalive()); System.out.println(“isalive:+t3.isalive()); } }

尝试使用线程实现一个简单的java程序 import java.util.Random; 公共类ThreadLogic实现可运行{ 私有字符串名称; 私人整数时间; private Random rand=new Random(); 公共线程逻辑(字符串名称){ this.name=名称; this.time=rand.nextInt(1000); } 公开募捐{ 试一试{ System.out.printf(“%s正在为%d休眠\n”、this.name、this.time); 线程。睡眠(这次); System.out.printf(“%s已完成。\n”,此.name); }捕获(例外情况除外){ 例如printStackTrace(); } } 公共静态void main(字符串[]args){ 线程t1=新线程(新线程逻辑(“线程1”); 线程t2=新线程(新线程逻辑(“线程2”)); 线程t3=新线程(新线程逻辑(“线程3”); t1.start(); //t1.停止(); t2.start(); t3.start(); t1.停止(); System.out.println(“线程-1的状态:“+”+t1.getState()); System.out.println(“线程状态-2”+“”+t2.getState()); System.out.println(“线程状态-3”+“”+t3.getState()); System.out.println(“isalive:+t1.isalive()); System.out.println(“isalive:+t2.isalive()); System.out.println(“isalive:+t3.isalive()); } },java,multithreading,Java,Multithreading,从上面的代码中,我如何在run()方法中实现这样的逻辑:如果线程等待的时间超过了指定的时间,我想终止该线程并检查正在运行的其他两个线程的情况。当我执行上述代码时,它会给出以下输出 线程1的状态:已终止 线程2的状态为可运行 线程3的状态为可运行 伊莎莉:错 伊莎莉:是的 伊莎莉:是的 线程2正在休眠151 线程3正在为384睡眠 线程2已完成。 线程3已完成 第一个thread.stop()不应使用,因为它已被弃用。(阅读原因) 其次考虑使用线程执行;这将返回一个。在这个future对象上,您可

从上面的代码中,我如何在
run()
方法中实现这样的逻辑:如果线程等待的时间超过了指定的时间,我想终止该线程并检查正在运行的其他两个线程的情况。当我执行上述代码时,它会给出以下输出

线程1的状态:已终止
线程2的状态为可运行
线程3的状态为可运行
伊莎莉:错
伊莎莉:是的
伊莎莉:是的
线程2正在休眠151
线程3正在为384睡眠
线程2已完成。
线程3已完成

第一个
thread.stop()
不应使用,因为它已被弃用。(阅读原因)


其次考虑使用线程执行;这将返回一个。在这个

future
对象上,您可以在手动等待所需的时间限制后直接调用,也可以在间隔到期后使用
TimeoutException
终止之前花时间调用,你可以取消的帖子。

谢谢你的回复。你能通过程序向我解释一下吗?那太好了,我不太擅长编程。这是我的作业。我已经很快提交了。这是我的学习阶段。。。。。。。。。。。。。。。。。。