【多线程】

提示:仅供参考


前言

并发和并行区别如下:

  1. 并行是指多条指令同时在多个处理器上执行。
  2. 并发则是同一时刻只有一条指令在处理器上执行,多条指令可以快速轮换执行。

一、专有名词

线程进程
能够执行程序代码的执行单元处于运行中的一个程序
共享进程空间/数据段/代码段/堆空间/拥有独立栈空间拥有多个线程
创建和开销性能消耗小开销大

二、线程的同步机制

1.Synchronized

性能分析实现原理
线程数较少情况(资源竞争少的情形),优于Lock锁等待锁队列中的线程,通过资源竞争获得对象锁,进入就绪状态,被jvm调度获得CPU时间片,转而进入运行状态,访问临界区(访问互斥资源的Synchronized) ,此时其他线程无法访问,等待当前线程操作完成释放锁。其它线程继续竞争互斥资源。

2.Lock

性能分析实现原理
资源竞争复杂的情形,Lock可以保持性能,而Synchronized会下降通过代码显示指定起始位置和结束位置,锁定代码

总结

锁类型锁机制/性能/用法
synchronized获取和释放锁都在块结构,自动解锁(不受异常影响)/根据竞争资源复杂情况而定/可以作用在方法,特定代码上,寄托给jvm执行
Lock必须在finally块手动解锁/根据竞争资源复杂情况而定/锁定,必须显示代码指定起始和结束位置
  1. Lock可以非阻塞方式tryLock()获取锁,尝试性获取锁,有则立即返回TRUE,没有返回FALSE。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值