![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA基础
文章平均质量分 51
基础不牢、地动山摇
会飞的架狗师
do more know more be more
展开
-
【锁】synchronized 锁升级过程中有几次自旋?
在Java中,自旋的次数是可以配置的,默认情况下是 10 次。总之,synchronized 锁的升级过程中涉及多轮自旋,通过偏向锁、轻量级锁和自旋锁等机制,系统可以在一定程度上提高并发性能,同时避免线程频繁地进入阻塞状态带来的系统开销。如果轻量级锁的竞争仍然激烈,没有获得锁的线程将进入自旋状态,不断重试获取锁,而不是立即进入阻塞状态。如果自旋一定次数后仍未获取到锁,轻量级锁将升级为重量级锁,此时竞争激烈的锁将使用传统的互斥量来保护,等待队列中的线程将进入阻塞状态,直到持有锁的线程释放锁。原创 2024-03-29 15:37:44 · 421 阅读 · 0 评论 -
Java中创建线程有哪几种方式
注意:不建议用 Executors 创建线程池,建议用 ThreadPoolExecutor 定义线程池。用的无界队列,可能造成 OOM;不能自定义线程名字,不利于排查问题。用 ExecutorService 创建线程。以上四种方式底层都是基于 Runnable。原创 2023-02-26 23:47:08 · 511 阅读 · 0 评论