问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于java中 interrupt,中断线程,我怎么怎样都不能中断

发布网友 发布时间:2022-05-15 07:41

我来回答

3个回答

热心网友 时间:2023-10-14 02:10

java线程中interrupt执行之后,并不能阻止线程执行,可以使用变量来控制,如下代码:

package com.qiu.lin.he;

import java.io.IOException;

public class CeShi extends Thread {
volatile boolean stop = false;

public static void main(String[] args) throws IOException,
InterruptedException {
CeShi thread = new CeShi();
System.out.println("Starting thread...");
thread.start();
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Asking thread to stop...");

thread.stop = true;
Thread.sleep(3000);
System.out.println("Stopping application...");
}

@Override
public void run() {
while (!stop) {//当stop变量为false时,则停止
System.out.println("Thread is running...");
long time = System.currentTimeMillis();
while (System.currentTimeMillis() - time < 1000 && !stop) {
}
}
System.out.println("Thread exiting under request...");
}

}

运行结果如下:

热心网友 时间:2023-10-14 02:11

以下为我的实现代码,可以试下:
import java.util.Date;
public class TestInterrupt {

/**
* @param args
*/
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
int i = 0;
while(i++<=10){ //当i=10时,终止标志设为true
thread.stopThread();
}

}

}

class MyThread extends Thread {
private boolean stopFlag = false ; //设置终止标志为false
public void run() {
while(true) {
System.out.println("===" + new Date() + "===");
try {
sleep(1000);
if(stopFlag){//当终止标志为true时,跳出循环体,线程结束
interrupt(); //当触发interrupt操作时,会
}
} catch(InterruptedException e) {
break;
}
}
}

public void stopThread(){
stopFlag = true;
}

}

热心网友 时间:2023-10-14 02:11

catch (InterruptedException e) {
thread.interrupt();
}
应该写成:
catch (InterruptedException e) {
}
thread.interrupt();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
建筑风水之阳宅形煞说 单位结算卡能不能直接转账?确实可以直接转账 能遮挡聊天记录的规则马赛克是用哪个软件打的 下巴这段时间长了好多大大个的痘痘怎么办。 干货丨英国学生准备瑞典申根签超详细攻略 VFS Global系统预约英国签证中心操作详解2021版 保温杯里泡茶过夜能喝吗 保温杯的茶多久不能喝 保温杯中的茶可以存放多长时间? 关于韩国果蔬瘦纤体奶茶的认证问题 果蔬瘦纤体奶茶有副作用吗? Java 为什么可以先interrupt,后sleep ? 冷暖风扇结构图 同纬度的北京冬天为什么比丹东暖和 java中interrupt Java interrupt无法中断线程 北京今年实在是太暖和了,真是暖冬啊!大家有同感吗? QQ在对方空间留言,对方删了还能看到吗 关于java中的interrupt()方法疑问 为什么北京今年冬天不下雪啊(除了上次那一点点)难道真的全球变暖?有关系么 java中interrupted 和 isinterruptedd方法的区别 纽约市和北京市纬度差不多,为什么纽约市冬季多雪而北京市冬季冷而少雪? java多线程,this.interrupted为什么可以调用?interrupted是静态方法啊 北京的冬天越来越暖和了,您感觉到了吗? Java 线程调用interrupt的作用 为什么这些年北方的冬天越来越暖和了? 激光打标技术的机理是怎样的? 北京市气候变暖的原因 北京几月份开始不冷了? 海尔滚筒洗衣机为什么定时56分到30分钟就不转动了? 半命题作文 我依然...记叙文 北京采取的有关解决气候变暖的措施有哪些? 北京天气是不是已经渐渐变暖了? 请问,北京的天气,在初五左右怎么一下子就变暖了?没有冷暖过渡呀? java 中的interrupt问题 北京什么时候天气会变暖! java中在main里不管是哪个对象调用的interrupted返回的总是main线程的运行状态标 为什么会出现java.lang.InterruptedException 关于JAVA多线程interrupt sleep的问题 Java中多线程只要一执行interrupt就一定会引发异常吗? 没有户口本怎么查户号 Java interrupt方法当线程阻塞的时候退不出来 多肉植物雨和张拉丁文名称.女雏的也想要.据说他们是同一个.谢谢 协议离婚财产分割协议 雨荷张多肉好养吗 多肉雨和张又叫女雏吗 这个多肉叫啥名? 这盘多肉叫什么 养在水里的绿萝要加肥吗 请问这是什么品种,好像不是观音莲 为什么多肉淋雨长的好