精华内容
下载资源
问答
  • 停止线程的方法

    2021-03-25 22:24:38
    停止线程的方法 //测试stop //1、建议线程正常停止,利用次数,不建议死循环 //2、建议使用标志位,设置一个标志位 //3、不要使用stop或者destroy等过时或者JDK不建议使用的方法 public class TestStop implements...

    停止线程的方法

    在这里插入图片描述

    
    //测试stop
    //1、建议线程正常停止,利用次数,不建议死循环
    //2、建议使用标志位,设置一个标志位
    //3、不要使用stop或者destroy等过时或者JDK不建议使用的方法
    public class TestStop implements Runnable{
    
        //1、设置一个标识位
        private boolean flag = true;
        @Override
        public void run() {
    
            int i = 0;
            while (flag){
                System.out.println("run...Thread"+i++);
            }
        }
        //2、设置一个公开的方法停止线程,转换标志位
        public void stop(){
            this.flag = false;
        }
    
        public static void main(String[] args) {
    
            TestStop testStop = new TestStop();
            new Thread(testStop).start();
            for (int i = 0; i < 1000; i++) {
                System.out.println("main"+i);
                if(i==900){
                    //调用stop方法切换标志位,让线程停止
                    testStop.stop();
                    System.out.println("线程该停止了");
                }
            }
        }
    }
    
    
    展开全文
  • C#停止线程的方法

    2020-09-03 10:24:11
    主要介绍了C#停止线程的方法,实例分析了C#正确停止线程的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了java安全停止线程的方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了java多线程之停止线程的方法实例代码详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了java通过共享变量结束run停止线程的方法,大家参考使用
  • 主要介绍了Java中如何停止线程的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • java中线程的几种状态和停止线程的方法 1.线程的状态图需要注意的是:线程调用start方法是使得线程到达就绪状态而不是运行状态2.停止线程的两种方法1)自然停止:线程体自然执行完毕2)外部干涉:...

    java中线程的几种状态和停止线程的方法

    1.线程的状态图

    QQ截图20181226161353

    需要注意的是:线程调用start方法是使得线程到达就绪状态而不是运行状态


    2.停止线程的两种方法

    1)自然停止:线程体自然执行完毕

    2)外部干涉:通过线程体标识

      1.线程类中定义线程体能够使用的标识

      2.线程体使用该标识

      3.提供对外的方法改变该标识

      4.外部根据条件调用该方法即可

    ThreadStop.java:

    注意:代理类系统自动提供的stop方法不要使用,要用stop的话,自己在线程类里面写一个,因为代理类系统自动提供的stop已经过时,存在不安全性问题


    posted @ 2018-12-26 16:43 Y先森0.0 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • 文章目录错误的停止线程的方法-- 使用stop代码示例关于stop的错误理论关于suspend与resume会带来的问题 错误的停止线程的方法-- 使用stop代码示例 public class StopThread implements Runnable{ /** * 模拟 五个...

    错误的停止线程的方法-- 使用stop代码示例

    public class StopThread implements Runnable{
    
        /**
         * 模拟 五个连队 每个连队10个人去领取武器
         */
        @Override
        public void run() {
            //5个连队
            for (int i = 1; i < 6; i++) {
                System.out.println("连队 "+ i+ "开始领取武器");
    
                //一个连队10个人
                for (int j = 0; j < 10; j++) {
    
                    System.out.println(j);
                    try {
                        Thread.sleep(300);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("连队 "+i+" 已经领取完毕 ! ");
            }
        }
    
        public static void main(String[] args) {
            Thread thread = new Thread(new StopThread());
            thread.start();
    
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    		//1s后, 使用stop 中断线程
            thread.stop();
        }
    }
    

    运行后 ,程序打印如下 . 如图所示, 使用stop 造成的后果就是一个连队还没领取完, 就停止了线程. 在实际业务中, 就可能会造成数据的丢失,造成经济损失.

    关于stop的错误理论

    关于stop的错误理论: 不使用stop是由于stop不会释放掉monitor的锁 ,会造成程序的卡死 .
    根据oracle的官网, 可以看到stop其实是会释放掉所有的monitor锁的.

    关于suspend与resume会带来的问题

    suspend 会让一个线程挂起, 但是不会释放锁, 是带着锁的去阻塞一个线程的, 这样很容易造成死锁. 也可能其他线程需要这把锁去, 这也可能会造成死锁 .

    展开全文
  • 主要介绍了Java通过在主循环中判断Boolean来停止线程的方法,结合具体实例形式分析了java针对线程的判断与停止操作相关实现技巧,需要的朋友可以参考下
  • Qt停止线程的方法

    万次阅读 2015-11-25 21:11:07
    一、停止线程的方法有两种: 一种是使用标志位,这种方法最好,在while循环中使用标志位判断是否满足进行循环的条件,并在run函数结束时将stoped置为初始化的值false。 while (!stoped){  emit sendhandledata()...
    一、停止线程的方法有两种:
    一种是使用标志位,这种方法最好,在while循环中使用标志位判断是否满足进行循环的条件,并在run函数结束时将stoped置为初始化的值false。
    while (!stoped){
      emit sendhandledata();
      qDebug() << "-------------- handle is running -------------";
      msleep(SLEEP_TIME);
     }
     stoped = false;

    第二中是使用terminate函数和wait函数。
    this->terminate();
    this->wait();

    二、暂停挂起线程和继续执行线程的方法
    使用互斥量QMutex:

    QMutex pause;  

    把run()函数中循环执行的部分用信号量pause锁住:

    forever{
    pause.lock();
    if (stoped){
    stoped = false;
    pause.unlock();
    break;
    }
    emit sendhandledata();
    qDebug() << "-------------- handle is running -------------";
    msleep(SLEEP_TIME);
    pause.unlock();
    }


    在主线程(UI线程)中,如果想暂停线程执行,就将pause加锁:

    thread->pause.lock(); //thread是线程指针  

    如果想继续线程,就将pause解锁:

    thread->pause.unlock();  

    重要提示:对线程lock和unlock的动作绝对不能在paintevent中进行,这样会使UI界面卡的死死的。
    展开全文
  • 停止线程的方法总结

    2021-05-12 14:50:22
    判断线程是否为停止状态 this.interrupted():测试当前线程是否已经被中断...异常法停止线程 public class MyThread extends Thread{ @Override public void run(){ super.run(); try { for (int i = 0; ..
  • 停止线程的方法有以下几种 1、异常法:通过抛出异常来跳出正在运行的线程,在catch块中可以将异常向上层抛出,线程的停止事件得以传播。 2、沉睡法:通过Thread.sleep()一个很长的时间,让线程抛出java.la...
  • C#停止正在运行的线程,一个完整C#源码示例,线程在平时也是经常用到高级技巧,现在计算机都是多任务操作了,掌握好线程可提高你软件效率,本示例演示如何关闭一个正在执行进程,源码在VS2010中可以正常编译...
  • 解析下interrupt()方法,对于老鸟来说,新手遇到这样的问题简直笑而不语, 估计你们上学的时候老师也说的不好,根本没有... * 停止线程的方法 * @author aa * */ public class ThreadInterrupt { pr...
  • java停止线程的方法

    2018-09-13 11:19:08
    java停止正在运行的线程的办法,自从stop方法过时之后,就剩下一个interrupt。但是这个interrupt是“尝试”打断线程,如果线程正在运行,它只是给线程置一个状态,线程周期性的判断状态退出;如果线程正在sleep、...
  • stopThread 停止线程的方法

    千次阅读 2018-08-09 17:19:24
    做一个标记,当满足某个条件 线程提前被结束 从而提前结束... * 结束线程的方法 * @author sanch * */ public class StopThreadTest implements Runnable { private boolean stopFlag = true; @Override publ...
  • 导读: 我们在多线程基础(二)中...一、异常法停止线程 日志信息: 通过日志信息我们可以看出,当判断线程中断后抛出异常,此时现在中的方法不在执行,直接进入catch。for方法下面的日信息没有打印就...
  • 最近在学习Java线程技术,发现interrupt()方法的并不能中断线程,然后对相关资料进行了查阅。
  • 文章目录volatile 可以线程中断的demovolatile 无法中断线程的demovolatile无法中断线程的错误原因分析修复停止线程的错误 volatile 可以线程中断的demo 主线程让子线程运行5s后进行中断的代码如下. 使用volatile...
  • (一)不正确的线程终止 - Stop ① stop 中止线程,并且清楚监控锁信息,但是可能导致线程安全问题,JDK不建议用。 ② Destroy JDK从未实现该方法。 ③ 通过代码示例说明 Demo3.java public class Demo...
  • 使用线程的三种方法(1)继承Thread类(2)实现Runnable接口(3)实现Callable接口 一、线程的使用 1.使用线程的三种方法 (1)继承Thread类 继承Thread类,并覆写run()方法 public class ExtendThread extends ...
  • Android中如何巧妙停止线程的方法

    万次阅读 2018-03-13 18:58:06
    好长时间没更新博客了,最近听取别人博客写作经验,将开发中遇到问题进行分享也是原创。...或者可能有时有多单依次叠加,此时最上面一单消失时,也需要先停止上一单倒计时再自动开启下一单倒计时。 如果是n...
  • /*使用两种方法实现停止一个线程。(stop()方法已不推荐使用。) * 1.使用interrupt()方法停止一个线程。 * 2.使用notify()方法停止一个线程。 * * */ public class Demo3 extends Thread{ int i=0; boolean ...
  • 正确停止线程的方法

    2015-05-04 21:40:00
    1 package com.lhy.thread; 2 3 public class ThreadStop { 4 5 public static void main(String[] args) { 6 Runner r = new Runner(); 7 Thread t = new Thread(r); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,865
精华内容 1,946
关键字:

停止线程的方法