高并发操作之多线程基本概念

进程和线程得区别:

  1. 进程是资源分配得最小单位
  2. 进程是资源分配得最小单位

多线程的作用:

可以有效的提高程序的效率

多线程使用的常见场景

  1. 非常耗时的操作 例如:io操作
  2. Web开发处理的响应和请求
  3. 后台任务
  4. 分布式计算

多线程的声明周期

一.准备状态
new一个Thread的实例出来,线程就进入的初始状态。
二.就绪状态
创建了线程对象后,其他线程调用了此线程的start()方法,就变得可运行了。
三.运行状态
就绪状态的线程获取了CPU,执行程序代码。
四.阻塞状态
1.等待阻塞
运行线程执行wait()方法
2.同步阻塞
运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。
3.其他阻塞
运行的线程执行sleep()或join()方法
五.死亡状态
线程执行完了或者因异常退出了run()方法,该线程结束生命周期。

线程同步

1.使用Synchronized关键字使线程运行时有序进行(线程锁)修饰锁对象
2.普通方法
3.静态方法
4.锁类(不推荐使用性能太差)

什么时候使用同步

1.多个线程执行的时候需要同步,如果是单线程则不需要同步。
2.多个线程在执行的过程中是不是使用同一把锁。

使用步骤

1.继承Thread类重写run方法
2.实现Runnble接口重写run方法(推荐)
3.使用匿名内部类来实现,创建Thread对象,在构造方法里实现new Runnble()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值