Java并发-线程的创建和终止

本文详细介绍了Java中线程的创建,包括继承Thread类、实现Runnable接口和Callable接口三种方式,并探讨了线程的终止,特别是Java提供的线程中断策略,包括isInterrupted(), interrupted()和interrupt()方法的使用及其相互关系。" 83004006,1342283,Cesium LabelGraphics 清晰显示技巧,"['cesium', '图形渲染', '前端开发']
摘要由CSDN通过智能技术生成

线程是操作系统的最小执行单元,每个线程都归属于一个进程,一个进程往往是一个独立的服务。

创建线程

创建线程的过程分两步:声明任务和启动线程。声明任务是定义线程需要执行的具体内容,启动线程是将任务托管到线程上交给操作系统去执行。

声明任务

声明任务的方式有三种,分别是:

  1. 继承Thread类
  2. 实现Runnable接口
  3. 实现Callable接口

下面分别看一下这三种方式的使用:

  • 继承Thread类
public static class ThreadTask extends Thread {
   
        //覆盖run方法,在此处编写业务逻辑
        @Override
        public void run() {
            System.out.println("Hello, I'am ThreadTask");
        }
}
public static void main(String[] args) {
        //创建线程实例
        Thread thread = new ThreadTask();
        //启动线程
        thread.start();
}

这种方式虽然能够实现预期效果,但并不推荐通过继承Thread来定义一个线程,因为这样会把任务到语义耦合到线程上。

  • 实现Runnable接口
public static class RunnableTask implements Runnable {
   
        //覆盖run方法,在此处编写业务逻辑
        @Override
        public void run() {
            System.out.println("Hello, I'am RunnableTask");
        }
 }

 public static void main(String[] args) {
        //声明任务
       Runnable task = new RunnableTask();
       //声明线程
       Thread thread = new Thread(task);
       thread.start();
}

与继承Thread相比,这种方式可以将要执行到业务逻辑和线程解耦合,线程只描述一个具体到执行单元,Runnable定义任务到具体内容。

  • 实现Callable接口
    Callable接口与Runnable接口具有相同的功能,区别在于Callable接口定义的任务可以获取其返回值,同时,提交Callable任务需要通过Java 5提高的线程调度框架ExecutorService,而不是用Thread.start()来启动线程。
public static 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值