java复习第十五天[多线程一]

什么是多线程

        简介: 多线程是java语言的重要特性,大量应用于网络编程,服务器端程序的开发,
最常见的UI界面的底层原理,操作系统的底层原理都大量使用了多线程.

多线程的三个概念

程序(Program):是一个静态的概念,一般对应于操作系统中的一个可执行的文件
,比如:我们要启动酷狗听音乐,则对应酷狗可执行程序。当我们双击酷狗,则加载
程序到内存中,开始执行该程序,于是产生了"进程".

进程:执行中的程序叫做进程(Process),是一个动态的概念。现代的操作系统都可以同时启动多个进程。比如:我们在用酷狗听音乐,也可以使用wps写文档,也可以同时用浏览器查看网页。可以通过任务管理器查看当前的进程.

线程:是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。

注意事项

  • 一个进程可拥有多个线程
  • 一个进程中的多个线程共享相同的内存单元/内存地址空间,可以访问相同的变量和对象,而且他们从同一堆中分配对象并进行通信,数据交换和同步操作。
  • 线程的启动,中断,消亡,消耗的资源非常少。
  • 每个java程序都有一个主线程:main thread(对应main方法启动)。
  • 线程的执行是由cpu进行调度的,可以设置优先级,不能设置先后执行顺序

实现线程的三种方式

实现线程的三种方式:

  1. 继承Thread类
  2. 实现Runnable接口(作者推荐使用)
  3. 实现Callable接口

继承Thread类 

public class Tang2 extends Thread{
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("正在执行多线程"+i);
        }
    }

    public static void main(String[] args) {
        Tang2 tang =new Tang2();
        tang.start();
        
        for (int i = 0; i < 1000; i++) {
            System.out.println("正在学习多线程"+i);
        }
    }
}

此代码执行会发现两个循环是一起执行的不会在等待run方法执行玩之后在去执行main后面的代码

当线程执行时会运行run()方法里的代码.

实现Runnable接口

public class Tang2 implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("正在执行多线程"+i);
        }
    }

    public static void main(String[] args) {
        Tang2 tang =new Tang2();
        new Thread(tang).start();

        for (int i = 0; i < 1000; i++) {
            System.out.println("正在学习多线程"+i);
        }
    }
}

这里可以看到不管是实现接口还是继承子类,都要去调用start方法去启动线程.

实现Callable接口

这个实现作者也还没搞会,可以去查看:

java复习第十六天[多线程二]_abc98526的博客-CSDN博客



 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

123小步

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

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

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

打赏作者

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

抵扣说明:

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

余额充值