C++八股文
松小白song
初出茅庐的小垃圾。
展开
-
锁的底层原理是什么?
锁的底层原理主要依赖于 CAS 操作和原子操作来保证多线程环境下的安全访问。CAS 通过原子性地比较和交换内存值来实现无锁同步,而原子操作则提供了基本的线程安全操作。阻塞锁通过操作系统的线程调度来管理锁的争用,而非阻塞锁通过自旋和 CAS 操作来减少线程挂起的开销。通过这些底层机制,锁能够有效地解决多线程中的竞争问题,但也要注意锁的选择和使用场景,以平衡性能和开销。原创 2024-09-03 16:55:14 · 404 阅读 · 0 评论 -
weak_ptr是否有计数方式,在哪分配的空间。
weak_ptr不增加对象的强引用计数,但会增加控制块的弱引用计数。如果使用,控制块和对象在同一块内存中;使用new时,控制块和对象分配在不同的内存区域。weak_ptr通过shared_ptr的控制块管理弱引用计数,避免了循环引用的内存泄漏问题。原创 2024-09-03 16:22:42 · 148 阅读 · 0 评论 -
左值引用和右值引用
左值引用:用于绑定到一个持久存在的左值,适合修改对象或减少复制开销。右值引用:用于绑定到一个临时右值,适合实现移动语义,提升程序的性能。原创 2024-09-03 16:15:10 · 169 阅读 · 0 评论