摘要: 读写锁 读写锁由「读锁」和「写锁」两部分构成,如果只读取共享资源用「读锁」加锁,如果要修改共享资源则用「写锁」加锁。所以,读写锁适用于能明确区分读操作和写操作的场景。 读写锁的工作原理是: 当「写锁」没有被线程持有时,多个线程能够并发地持有读锁,这大大提高了共享资源的访问效率,因为「读锁」是用于读取 阅读全文
posted @ 2022-04-12 22:51 苏格拉底的落泪 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 互斥锁与自旋锁 多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱的问题,所以我们通常为了解决这一问题,都会在访问共享资源之前加锁。 最底层的两种就是会「互斥锁和自旋锁」,有很多高级的锁都是基于它们实现的,你可以认为它们是各种锁的地基,所以我们必须清楚它俩之间的区别和应用。 加锁的目的就是保证 阅读全文
posted @ 2022-04-12 22:44 苏格拉底的落泪 阅读(264) 评论(0) 推荐(0) 编辑
摘要: https://jacktang816.github.io/post/cppnewdelete/ 阅读全文
posted @ 2022-04-12 11:06 苏格拉底的落泪 阅读(8) 评论(0) 推荐(0) 编辑
摘要: for循环 在 perl 中,redo 用于立即重新开始当前的循环迭代,而不进行条件测试和循环控制变量的更新。redo 通常用于在特定条件下重复某个循环迭代。下面是一些示例,展示了如何使用 redo 循环控制语句: 控制语句 描述 next语句 停止执行从next语句的下一语句开始到循环体结束标识符 阅读全文
posted @ 2022-04-12 10:59 苏格拉底的落泪 阅读(19) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> class Base { public: virtual void f() { std::cout << "Base::base()" << std::endl; } }; class Test : public Base { public: void f() 阅读全文
posted @ 2022-04-12 10:55 苏格拉底的落泪 阅读(210) 评论(0) 推荐(0) 编辑