Linux多线程基础之线程基础用法

什么是线程?

多人砌墙的故事

​ 加快任务完成可以通过加人的方法来实现。

​ 同样,程序中可以通过加进程来实现,但是,多进程存在资源浪费的问题。

​ 而线程没有资源浪费的问题。

总结:

线程就是“轻量级”的进程

线程与创建它的进程共享代码段、数据段

线程有自己的栈

创建线程:

int pthread_create(pthread_t * thread, const pthread_attr_t * attr, void * ( * start_routine)(void * ), void * arg);

返回值:成功:0

​ 失败:错误编码

参数1:新创建的线程ID

参数2:待创建线程的属性

参数3:线程的入口函数

参数4:线程的入口函数的参数,可以为NULL

注意:编译时必须链接pthread库

等待线程结束:

在这里插入图片描述
解释:多进程中,父进程结束时,子进程可以不结束;

​ 但是多线程中,进程A(主线程)退出时,子线程也会结束。

int pthread_join(pthread_t thread, void ** retval);

功能:用于等待线程结束

返回值:

​ 成功:0

​ 失败:错误编码

参数1:要等待结束的线程ID

参数2:保存目标线程退出时的状态,一般为NULL

退出线程:

注意:不可以使用exit()哦!!! 这样会使整个进程退出。

void pthread_exit(void * retval);

功能:结束线程

参数1:保存返回值

结束:代码实例请参考下一节讲解(Linux多线程之线程互斥(互斥锁)

猜你喜欢

转载自blog.csdn.net/QQ1402369668/article/details/86989598
今日推荐