线程的切换
面试题
当有一个线程的时候,是不是越多越好。
当然不是,当执行线程的时候,线程将会不断的来回切换,大量的时间全部浪费在线程的切换上面。并不是越多越好。
一个java线程对应这cpu内核的一个线程
1.锁的概念
当A进来 锁将关闭,防止其他人进来,A将将会在里面干这件事,当干完的时候,锁将打开,其他人才可以进来
锁 锁定谁有自己制定
轻量级锁 自选锁 原地转圈 while循环
什么时候轮到 等待操作系统进行调度 称为重量级锁。
当竞争特别激烈,用重量级锁。
面试题
自旋锁一定比重量级锁效率高吗?
一定不是,当轻量级锁,竞争激烈,while循环将会大量消耗cpu资源,大量的while消耗大量资源,此时应采用重量级锁。
不同场应选用不同的锁。
最早的synchronized直接是重量级锁(找操作系统来进行调度),效率非常低,