问答1 问答5 问答50 问答500 问答1000

java 线程 我想让没执行完的run方法 提前终止。有什么方法

提问网友 发布时间:2024-04-28 10:57
声明声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:1656858193@qq.com
5个回答
热心网友 回答时间:2024-05-14 21:01

java线程让没执行完的run方法提前终止的方法如下:
    1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 


package chapter2; 

public class ThreadFlag extends Thread 

    public volatile boolean exit = false; 

    public void run() 
    { 
        while (!exit); 
    } 
    public static void main(String[] args) throws Exception 
    { 
        ThreadFlag thread = new ThreadFlag(); 
        thread.start(); 
        sleep(5000); // 主线程延迟5秒 
        thread.exit = true;  // 终止线程thread 
        thread.join(); 
        System.out.println("线程退出!"); 
    } 
}

    2.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 
    3.  使用interrupt方法中断线程。 
    当run方法执行完后,线程就会退出。但有时run方法是永远不会结束的。如在服务端程序中使用线程进行监听客户端请求,或是其他的需要循环处理的任务。在这种情况下,一般是将这些任务放在一个循环中,如while循环。如果想让循环永远运行下去,可以使用while(true){……}来处理。但要想使while循环在某一特定条件下退出,最直接的方法就是设一个boolean类型的标志,并通过设置这个标志为true或false来控制while循环是否退出。下面给出了一个利用退出标志终止线程的例子。 



    在上面代码中定义了一个退出标志exit,当exit为true时,while循环退出,exit的默认值为false.在定义exit时,使用了一个Java关键字volatile,这个关键字的目的是使exit同步,也就是说在同一时刻只能由一个线程来修改exit的值, 

热心网友 回答时间:2024-05-14 21:01
1.Thread类有个方法,void interrupt()
作用是中断线程
2.对于while(true)式的线程,可以设置一个public的boolean变量比如b,初始为true,把while(true)换成while(b),需要终止时,设置b为false即可
热心网友 回答时间:2024-05-14 21:02
什么情况下要提前终止嘛,如果是其他线程完了就终止的话,可以设置为保护线程setDaemon(true)方法。
如果是执行到什么情况下终止的话可以这样
if(boo)
{
return;
}
热心网友 回答时间:2024-05-14 21:02
如果是方法,你就return, 线程的话,你直接直接抛异常
热心网友 回答时间:2024-05-14 21:03
不行,你只能让线程自己不停的去检测,是否需要退出。然后你在主线程通过共享的变量去控制子线程。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

未满一年怎么改第二次 没到一年时间怎么改? ...笔记本电脑现在怎么每次开机之后看电池电量都不满,只有百分之几十... 未满一年怎么强制改 改错了未满一年怎么改回来? ...要提前定的?电影院能带零食进去吃吗?一张票大概多少钱? 移动公司私自帮别人拉抖音信息单子是不是违法的你好? 一年内怎么改第二次 微信没满一年怎么改? 手机号绑定了达到限制不能绑定其他是什么意思? 修改没到一年怎么改? 未满一年可以强制改吗 您的手机号在最近24小时内绑定过三个,已达到限制,...24小时后... hearrivedherethreedaysago同义句 关于微信绑定上限的问题:你的手机号在最近24小时内已绑定过3个... ...自动生成目录 第一标题与第二和第三标题对不齐啊 请高手指教 谢谢... 拓业科技抖音做任务是不是真的 常州离郑州多远 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 一个手机号怎么注册两个 打耳骨会痛么?-, = 新手怎么做豉汁排骨? 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 一个手机号注册两个怎么弄 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... ...一张成人票的价格钱是儿童票价钱的2倍儿童票一张多少钱 ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 不满足一年想改 未满一年改二次方法 修改没到一年怎么改? 可以用一个手机号码注册两个码吗? 如何一年内强制二次修改? 魔域飞升一共几关?? 魔域有关飞升的 改错了未满一年怎么改回来? 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 一年内可以修改几次吗? 未满一年怎么强制改 怎么一年内修改两次怎么二次改变