Java中如何通过实例解析多线程锁机制原理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计985个文字,预计阅读时间需要4分钟。
上下文:程序运行需要的环境(外部变量)+ 上下文切换:将之前程序需要的的外部变量复制保存,然后切换到新的程序运行环境+ 系统调用:(用户态陷阱,操作系统执行)
上下文:程序运行需要的环境(外部变量)
上下文切换:将之前的程序需要的外部变量复制保存,然后切换到新的程序运行环境
系统调用:(用户态陷入操作系统,通过操作系统执行内核态指令,执行完回到用户态)用户态——内核态——用户态:两次上下文切换
线程wait()方法:将自身加入等待队列,发生了一次上下文切换
notify()方法:将线程唤醒,也发生了上下文切换
Java线程中的锁:偏向锁、轻量级锁、重量级锁。
注意:偏向锁和轻量级锁都没有发生竞争,重量级锁发生了竞争。
偏向锁:可重入和经常使用某一个线程。
轻量级锁:线程之间的切换,但是未发生竞争(在一个时间段只有一个线程使用)
重量级锁:线程时间的竞争。
临界区:多个线程共享临界区,而且存在对临界区的读写。
本文共计985个文字,预计阅读时间需要4分钟。
上下文:程序运行需要的环境(外部变量)+ 上下文切换:将之前程序需要的的外部变量复制保存,然后切换到新的程序运行环境+ 系统调用:(用户态陷阱,操作系统执行)
上下文:程序运行需要的环境(外部变量)
上下文切换:将之前的程序需要的外部变量复制保存,然后切换到新的程序运行环境
系统调用:(用户态陷入操作系统,通过操作系统执行内核态指令,执行完回到用户态)用户态——内核态——用户态:两次上下文切换
线程wait()方法:将自身加入等待队列,发生了一次上下文切换
notify()方法:将线程唤醒,也发生了上下文切换
Java线程中的锁:偏向锁、轻量级锁、重量级锁。
注意:偏向锁和轻量级锁都没有发生竞争,重量级锁发生了竞争。
偏向锁:可重入和经常使用某一个线程。
轻量级锁:线程之间的切换,但是未发生竞争(在一个时间段只有一个线程使用)
重量级锁:线程时间的竞争。
临界区:多个线程共享临界区,而且存在对临界区的读写。

