- Multi-threading in C++
- Launch a Thread
- pthread
启动一个线程,将参数传递给一个线程函数。
#include
void do_a_task(int x) {
// do something
};
std::thread my_thread(do_a_task, 1); //参数:函数名,传递进函数的参数
class my_task{
public:
void operator(){
// do something
}
};
my_task f;
std::thread my_thread(f); //参数:实例对象
pthread
使用pthread的线程管理。
// 启动线程
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routione)(void*), void *arg);
#include
void* do_a_task(void* param) {
// do something
pthread_exit(NULL);
};
pthread_t thread_id;
int rc = pthread_create(&thread_id, NULL, do_a_task, NULL);
等待线程结束
pthread_join(thread_id, &status); // 返回值将传到地址中
分离线程
pthread_detach(thread_id); // 分离后id与pthread则不再绑定
销毁线程
pthread_cancel(thread_id);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)