首页 > 代码库 > C++多线程
C++多线程
多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序;
多任务处理的两种类型:基于进程 和 基于线程;
基于进程的多任务处理是程序的并发执行;
基于线程的多任务处理是同一程序的片段的并发执行;
多线程程序包含可以同时运行的两个或多个部分,这样的程序中的每个部分称为一个线程,每个线程定义了一个单独的执行路径;
创建线程: ( 创建成功时,函数返回0 )
#include<pthread.h>
pthread_create(thread, attr, start_routine, arg) // pthread_creadte 创建新的线程,并让它可执行
参数:thread:指向线程标识符指针;
attr:一个不透明的属性对象,可用来设置线程属性;
start_routine:线程运行函数起始地址,一旦线程被创建就会执行;
arg:运行函数的参数,它必须通过把引用作为指针强制转换为void类型进行传递;
终止线程:
#include<pthread.h>
pthread_exit ( status ) // pthread_exit()用于显示地退出一个线程;
向线程传递参数:
连接和分离线程:
pthread_join ( thread_id, status ) // 阻碍调用程序,直到指定的 thread_id 线程终止为止;
pthread_detach ( thread_id )
当创建一个线程时,它的某个属性会定义它是否是可连接的(joinable)或可分离的(detached)。
只有创建时定义为可连接的线程才可以被连接;
如果线程创建时被定义为可分离的,则它永远也不能被连接;
C++多线程