美文网首页
简单开启线程方式

简单开启线程方式

作者: 一个冬季 | 来源:发表于2019-07-22 18:57 被阅读0次
参考文章

android 停止 终止 Thread 线程的三种方法

需求

我想使用Thread的方式来开启一个线程,如何使用才是比较好的呢?

学习到的知识点

1、直接使用thread.stop()的方式来终止是不好的
2、我通过while(!isInterrupted())来进行是否终止线程,发现会出现无法终止的情况
3、使用volatile标识 不会让多线程同时改变参数

代码展示
public class PayListThread extends Thread{
    private int sleepTime = 1000 * 5;//默认睡眠5秒
    private volatile boolean isNeed = true;
    @Override
    public void run() {
        int ready = 0;
        while (isNeed){
            try {
                Thread.sleep(sleepTime);
                  //这里处理你的业务
            } catch (InterruptedException e) {
                e.printStackTrace();
                break;//捕获到异常之后,执行break跳出循环
            }
        }
    }

    /**
    * @date: 2019/7/22 0022
    * @author: gaoxiaoxiong
    * @description:销毁线程
    **/
    public void detory() {
        if (isNeed){
            isNeed = false;
            this.interrupt();
            try {
                this.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

当需要销毁线程的时候,需要调用destory的方法

相关文章

  • 简单开启线程方式

    参考文章 android 停止 终止 Thread 线程的三种方法 需求 我想使用Thread的方式来开启一个线程...

  • NSThread

    开启子线程方式 创建线程 分离出子线程 开启后台线程 线程属性 线程名字 线程优先级0.0~1.0 默认0.5优先...

  • 定时器nstimer 详解

    一、主线程开启NSTimer 开启方式:scheduledTimerWithTimeInterval(直接开启)与...

  • NSTimer

    一、主线程开启NSTimer 开启方式:scheduledTimerWithTimeInterval(直接开启)与...

  • 面向对象(二十二)-多线程使用

    1. Thread Thread默认开启前台线程。 其他的开启方式默认开启后台线程。 首先导入命名空间:Syste...

  • 30、C#中几种多线程的使用方式

    1. Thread Thread默认开启前台线程。 其他的开启方式默认开启后台线程。 首先导入命名空间:Syste...

  • NSThread

    使用NSThread开辟线程有两种方式: (1)手动开启方式的创建: (2)自动开启方式的创建:

  • python中的多线程

    python中的多线程 基本操作 创建线程: 方式一:使用_thread模块直接开启一个线程 方式二:继承一个线程...

  • 第10天,线程、协程、IO多路复用、socketserver

    目录 一、开启线程的两种方式 在python中开启线程要导入threading,它与开启进程所需要导入的模块mul...

  • iOS NSThread

    1、知识梳理 一个NSThread对象就代表一条线程 创建和启动线程 该方式,需要手动开启线程 其他创建线程方式:...

网友评论

      本文标题:简单开启线程方式

      本文链接:https://www.haomeiwen.com/subject/tdcglctx.html