上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 41 下一页
摘要: 多线程 std::call_once 转自:https://blog.csdn.net/hengyunabc/article/details/33031465 std::call_once的特点:即使有多个线程要访问同一个函数,只有一个线程会成功。 std::call_once的用途:当某个数据只有 阅读全文
posted @ 2018-11-06 21:44 小石王 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 多线程 unique_lock的使用 unique_lock的特点: 1,灵活。可以在创建unique_lock的实例时,不锁,然后手动调用lock_a.lock()函数,或者std::lock(lock_a, …),来上锁。当unique_lock的实例被析构时,会自动调用unlock函数,释放锁 阅读全文
posted @ 2018-11-05 22:29 小石王 阅读(6892) 评论(0) 推荐(0) 编辑
摘要: 多线程 层级锁 当要同时操作2个对象时,就需要同时锁定这2个对象,而不是先锁定一个,然后再锁定另一个。同时锁定多个对象的方法:std::lock(对象1.锁,对象2.锁...) 但是,有的时候,并不能同时得到所以要锁定的锁,必须是先锁定某个后,再锁定其他的,这种情况就不能使用std::lock函数了 阅读全文
posted @ 2018-11-05 21:15 小石王 阅读(2064) 评论(1) 推荐(0) 编辑
摘要: 多线程 thread_local 类型 thread_local变量是C++ 11新引入的一种存储类型。 thread_local关键字修饰的变量具有线程周期(thread duration), 这些变量(或者说对象)在线程开始的时候被生成(allocated), 在线程结束的时候被销毁(deall 阅读全文
posted @ 2018-11-01 21:52 小石王 阅读(776) 评论(0) 推荐(0) 编辑
摘要: 多线程 std::lock 当要同时操作2个对象时,就需要同时锁定这2个对象,而不是先锁定一个,然后再锁定另一个。同时锁定多个对象的方法:std::lock(对象1.锁,对象2.锁...) 额外说明:lock_guard\ lock_a(d1.m, std::adopt_lock); 上面这句是为了 阅读全文
posted @ 2018-11-01 07:46 小石王 阅读(2194) 评论(0) 推荐(0) 编辑
摘要: 多线程 绕过mutex的保护 mutex,能够解决线程安全的问题,但它不是万能的。下面的例子虽然使用了mutex,但是恶意注入了一个外部函数,导致把被mutex保护的双向链表,让一个外部的指针指向了,结果就可以通过这个外部的指针操作被保护的双向链表,也就绕过了metex的保护。 例子: c++ in 阅读全文
posted @ 2018-10-31 07:48 小石王 阅读(897) 评论(0) 推荐(0) 编辑
摘要: 多线程 mutex的理解 mutex,我的理解是每个mutex对象都是一个带锁头的门,这个门有两个状态,门开着和门关着,感觉像是废话。。。 当想查看门的里东西,或者把东西放进门里,或者从门里拿出东西前,都需要看看,门是否是打开的。 如果门是打开的,就要进去后赶紧把门关上。关上后,就可以查看屋子里的东 阅读全文
posted @ 2018-10-30 22:57 小石王 阅读(4875) 评论(3) 推荐(0) 编辑
摘要: 多线程 参数传递 1,值传递,拷贝一份新的给新的线程。线程1中有个int变量a,在线程1中启动线程2,参数是a的值,这时就会拷贝a,线程1和线程2不共享a。 2,引用传递,不拷贝一份新的给新的线程。线程1中有个int变量a,在线程1中启动线程2,参数是a的引用,这时就不会拷贝a,线程1和线程2共享a 阅读全文
posted @ 2018-10-28 20:53 小石王 阅读(10366) 评论(0) 推荐(0) 编辑
摘要: 多线程 detach的困惑 求大神解答: 1,当在一个函数里启动一个线程后,并detach了 2,detach的线程里使用了这个函数里new出来的一个对象 3,detach后,delete了这个对象 4,为什么detach在线程里,使用了在3处delete的内存还不报错误??? start 更新分割 阅读全文
posted @ 2018-10-24 23:53 小石王 阅读(3095) 评论(0) 推荐(0) 编辑
摘要: linux epoll系列5 解除epoll_wait状态 有时候会有解除epoll_wait状态的需求。 实现方法: 1,给执行epoll_wait的程序发signal。 2,使用sockpair。 1,给执行epoll_wait的程序发signal。 c++ include include in 阅读全文
posted @ 2018-10-21 23:14 小石王 阅读(2873) 评论(0) 推荐(0) 编辑
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 41 下一页