Java--多线程

目录:什么是多线程;多线程的两个概念;多线程的实现方式;常见的成员方法;线程安全的问题;死锁;生产者和消费者

一.什么是多线程:(有了多线程,我们就可以让程序同时做多件事情)

1.线程:线程是操作系统能够进行运算调度的最小单位。它被包含在进程中,是进程的实际运作单位

2.简单理解:应用软件中相互独立,可以同时运行的功能

3.多线程的作用:提高效率

4.多线程的应用场景:只要你想让多个事情同时运行就需要用到多线程

二.多线程的两个概念:

1.并发:在同一时刻,有多个指令在单个CPU上交替执行

2.并行:在同一时刻,有多个指令在多个CPU上同时执行

三.多线程的实现方式:

1.继承Thread类的方式进行实现

(1)自己定义一个类继承Thread

(2)重写run方法

(3)创建子类的对象,并启动线程

 2.实现Runnable接口的方式进行实现

(1)自己定义一个类实现Runnable接口

(2)重写里面的run方法

(3)创建自己的类的对象

(4)创建一个Thread类的对象,并开启线程

3.利用Callable接口和Future接口方式实现

特点:可以获取到多线程运行的结果

(1)创建一个类MyCallable实现Callable接口

(2)重写call(是有返回值的,表示多线程运行的结果)

(3)创建Callable的对象(表示多线程要执行的任务)

(4)创建FutureTask的对象(作用管理多线程运行的结果)

(5)创建Thread类的对象,并启动(表示线程)

四.常见的成员方法:

1.如果我们没有给线程设置名字,线程也是有默认的名字的  格式:Thread-X(X序号,从0开始的)

2. sleep注意细节:

(1)哪条线程执行到这个方法,那么哪条线程就会在这里停留对应的时间

(2)方法的参数就是睡眠的时间,单位毫秒  1秒=1000毫秒

(3)当时间到了线程就会自动醒来,继续执行下面的其它代码

3.守护线程(备胎):当非守护线程执行完毕后,守护线程也会陆续结束

五.线程安全的问题:

1.同步代码块:把操作共享数据的代码锁起来

格式:synchronized (锁){

            操作共享数据的代码

           }

锁一般写成 MyThread.class

六.死锁

七.生产者和消费者:(常见方法)

1.线程的状态:

新建状态(new) -> 创建线程对象

就绪状态(runnable) -> start方法

阻塞状态(blocked) -> 无法获得锁对象

等待状态(waiting) -> wait方法 

计时状态(timed-waiting) -> sleep方法

结束状态(terminated) -> 全部代码执行完毕

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值