![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程基础
文章平均质量分 91
库达ZT
这个作者很懒,什么都没留下…
展开
-
基础篇:多线程所需知识:RAII接口模式对生产者和消费者封装以及多batch实现
1、头文件应尽量简洁2、不需要的东西都放到cpp当中,不要让接口类看到private:public:这样就不符合尽量简洁的原则,因为这里用不到stream,应该尽可能放到cpp里。3、尽量不要在头文件写using namespace,因为写了这个就代表命名空间被打开了,这样就使得所有包含了这个头文件的人的所有命名空间都被打开。但CPP里可以写。原创 2023-08-02 14:42:35 · 328 阅读 · 0 评论 -
C++多线程编程2_互斥量,死锁
这个会等待一段时间,如果超过了这段时间就会返回false。原创 2023-05-28 22:03:14 · 91 阅读 · 0 评论 -
C++多线程编程1_时间,线程,异步
C++引入的时间标准库:std::chrono时间点类型:chrono::::time_point等时间段类型:chrono::milliseconds等方便的运算符重载:时间点+时间段时间点,时间点时间点时间段时间段也可以以double为返回类型:可以在任意的duration类型之间转换表示用T类型表示,且时间单位是RR省略不写就是秒,std::milli就是毫秒,std::micro就是微秒seconds是的类型别名是的类型别名。原创 2023-05-27 21:13:00 · 267 阅读 · 1 评论 -
基础篇:多线程所需知识:
上图是我们之前的一个例子,可以看到如果没有t.join(),那么线程是会崩掉的,因为他的生命周期在main()函数里面,所以当main结束之后他也会析构掉,但线程里面还在执行,所以会出现错误。可以通过取地址方式,保留this参数,这样做可以避免static无法使用this->的操作。可以看到在延迟了500毫秒之后,worker down这条语句来不及打印,就会直接退出。如果一个线程一旦detach之后,线程就交给了系统作管理,当程序结束后自动退出。detach是分离线程,取消管理权,使线程变成野线程。原创 2023-07-28 14:35:01 · 113 阅读 · 0 评论