![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 72
陈橙橙丶
不放手 直至理想到手
展开
-
【并发编程】synchronized如何保证原子性、一致性和可见性
synchronized是解决线程安全的问题,常用在同步普通方法、静态方法、代码块中,每个对象有一个锁和等待队列,锁只能被一个线程持有,其他需要锁的线程需要阻塞等待,锁被释放后,对象会从队列中取出一个并唤醒,唤醒哪个线程是不确定的,不保证公平性,因此,synchronized是非公平、可重入的悲观锁。原创 2023-07-07 14:34:59 · 445 阅读 · 0 评论 -
【并发编程】ReentrantLock是公平锁还是非公平锁
ReentrantLock是公平锁还是非公平锁?ReentrantLock通过参数控制,可以是公平锁也可以是非公平锁。原创 2023-07-06 10:19:10 · 571 阅读 · 0 评论 -
【并发编程】常见的锁
在多线程编程中,上下文切换是一种常见的操作,上下文切换通常是指在一个CPU上,由于多个线程共享CPU时间片,当一个线程的时间片用完后,需要切换到另一个线程运行。同时,需要将切换到的线程的状态信息回复,以便于该线程能够正确运行。什么是上下文切换:上下文切换是指CPU从一个线程转到另一个线程时,需要保存当前线程的上下文状态,恢复另一个线程的上下文状态,以便于以下次恢复执行该线程时能够正确地运行。悲观锁适合写操作多的场景,乐观锁适合读操作的场景,乐观锁的吞吐量会比悲观锁多。原创 2023-07-06 09:53:15 · 195 阅读 · 0 评论