Java教程

悲观锁、乐观锁

本文主要是介绍悲观锁、乐观锁,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

悲观锁: 只有要给线程能进入方法,其他线程需要等待,会阻塞、挂起线程 (会有至少一次的上下文切换) 例:sync锁

乐观锁:每个线程都能进入方法,循环判断操作   ,不会阻塞、挂起   例:CAS操作

 

一、什么是上下文切换
即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个 任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这 个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。 

 

 

 

这篇关于悲观锁、乐观锁的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!