java学习线程篇之多线程的实现方式:继承Thread类、实现Runnable接口或Callable接口~

本文介绍了Java中实现多线程的三种方式:继承Thread类、实现Runnable接口以及Callable接口。重点讨论了Thread类与Runnable接口的使用,包括线程的启动方法、数据共享的区别,并提及了Callable接口用于获取线程执行结果的特点。
摘要由CSDN通过智能技术生成

1. 基本概念:进程与线程

在操作系统的定义中,进程是指一次程序的完整运行,这个运行的过程之中内存、处理器、IO等资源操作都要为这个进程进行服务。

Windows属于多进程的操作系统,那么问题就来了?每一个进程都需要资源的支持,那么这么多进程怎么分配资源呢?

在同一个时间段上,会有多进程轮流去抢占资源,但是在某一个时间点上,只会有一个进程进行。

线程是在进程基础上进一步的划分结果,即:一个进程上可以同时创建多个线程。

线程是比进程更快的处理单元,而且所占的资源也小,那么多线程的应用也是性能最高的应用。

线程的存在离不开进程。进程如果消失,线程一定会消失;但是线程消失,进程未必消失。

2. 实现多线程的方式

在java中有三种多线程(JDK 1.5之后增加了第三种)。

2.1 继承Thread类

Thread类是一个支持多线程的一个功能类,只要有一个子类就可以实现多线程的支持

所有程序的起点是main方法,但是所有线程也一定要有一个自己的起点,那么在多线程的每个主体类之中都必须覆写Thread类中提供的run()方法

public void run(){}

这个方法没有返回值,那么也就表示线程一旦开始就要一直执行,不能够返回内容。

class MyThead extends Thread {  //这就是一个多线程的操作类
    private String name;

    public MyThead(String name) { //定义构造方法
        this.name = name;
    }

    @Override
    public void run(){ //覆写run方法,作为线程的主体操作方法
        for (int x = 0; x <5; x++) {
            System.out.println(this.name+"-->"+x);
        }
    }
}

    public class Test{
        public static void main(String[] args) {
            MyThead myThead1=new MyThead("线程1");
            MyThead myThead12=new MyThead("线程2");
            MyThead myThead3=new MyThead("线程3");
            myThead1.run();
            myThead12.run();
            myThead3.run();

        }
    }

以上代码的功能实现循环输出。所有的线程与进程一样,必须轮流的去抢占资源。所以多线程的执行是多个线程彼此交替执行,也就是说,如果直接调用了run方法,那么并不能够启动多线程。多线程唯一的启动方法就是Thread类中的start方法。

public void start() // 调用此方法实际上执行的是run方法

在这里插入图片描述
start()方法中调用本地的start0()方法&#

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就是二二二二婷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值