线程(一)概念、创建、标识、终止、连接
概念
- 使用多线程在做串行任务时,需要阻塞。
线程比进程有优势的地方
- 同一个进程的多个线程可以并发执行
进程 VS 线程
进程堆栈
线程共享的资源属性
线程数据类型
线程标识
- 进程ID是唯一的,但线程ID只有在所属的进程上下文才有意义。
对两个线程ID进行比较。
获取自身线程ID
判断两个线程ID是否相同
线程池工作任务
线程创建
#include
#include
#include
#include // exit()
pthread_t ntid;
void printids(const char *s)
{
pid_t pid;
pthread_t tid;
pid = getpid();
tid = pthread_self();
printf("%s pid:%lu, tid:%lu.\n", s, (unsigned long)pid, (unsigned long)tid);
}
void * thr_fn(void *arg)
{
printids("new thread:");
return ((void *)0);
}
int main(void)
{
int err;
err = pthread_create(&ntid, NULL, thr_fn, NULL);
if (err != 0) // 1表示失败
{
//err_exit(err, "error");
exit(1);
}
printids("main thread:");
sleep(1);
return 0;
}
线程终止的方法
pthread_exit
pthread_join