C++11之thread智能指针(一百零八)
2023-09-14 09:09:57 时间
1.代码示例
//1.class_demo.h
#include <iostream>
#include <thread>
#include <chrono>
#include <unistd.h>
using namespace std;
class Audio{
public:
bool loop_back_ = 1;
Audio(int n);
~Audio();
std::thread* thread_id_;
//void process();
};
//2.class_demo.cpp
#include "class_demo.h"
void process(void *data){
auto thiz = static_cast<Audio*>(data);
while(thiz->loop_back_){
this_thread::sleep_for(chrono::seconds(1));
printf("xxx-------->%s(), line = %d, loop_back = %d\n",__FUNCTION__,__LINE__,thiz->loop_back_);
}
}
Audio::Audio(int n){
thread_id_ = new thread(process, this);
printf("xxx-------->%s(), line = %d\n",__FUNCTION__,__LINE__);
}
Audio::~Audio(){
this->loop_back_ = 0;
printf("xxx-------->%s(), line = %d, loop_back = %d\n",__FUNCTION__,__LINE__,this->loop_back_);
}
int main(){
//way 1:
//Audio *audio = new Audio();
//way 2:
shared_ptr<Audio> audio = make_shared<Audio>(3);
//1.join(); thread sync
//audio->thread_id_->join();
//2.datech(); thread async
audio->thread_id_->detach();
sleep(1);
printf("xxx-------->%s(), line = %d\n",__FUNCTION__,__LINE__);
//delete audio;
}
相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- c++语言截取字符串,详解C++ string常用截取字符串方法
- C++智能指针「建议收藏」
- 彻底搞懂之C++智能指针
- 【C++】简单实现C++11的三种智能指针
- C++ 中文周刊 第85期
- C++中,cin.eof()
- 【c++】【基础】【primer_plus】【第七章】函数指针
- C++与C的区别终于说清楚了!
- 时隔二十年,C++又杀回来了!
- c++的链表-C++链表
- 【C++修炼之路】5. 类和对象(下)
- 【错误记录】Ubuntu 下 VSCode 编译报错 ( 无法生成和调试,因为活动文件不是 C 或 C++ 源文件。终端进程启动失败(退出代码: -1)。终端将被任务重用,按任意键关闭。 )
- 开心档之C++ 多线程
- c++基础篇之C++ 模板
- C++ uniform_real_distribution连续均匀分布类模板用法详解
- C++11 weak_ptr智能指针(一看即懂)
- C++11 shared_ptr(智能指针)详解
- 浅谈C++ auto_ptr智能指针
- C++智能指针unique_ptr详解
- C++中智能指针如何设计和使用
- c++中.dll与.lib文件的生成与使用的详解
- C++中获取UTC时间精确到微秒的实现代码
- C++类模板与模板类深入详解