线程:
什么是线程?很多介绍都是“轻量级的进程”,不过感觉线程的定义一直都比较模糊,没有找到什么具体的定义。倒是觉得“进程是资源分配的最小单位,线程是调度的基本单位”,这个说法算是比较认可的。
现在主要探索的就是APUE中提供的关于线程的相关函数。
线程标示:
和进程一样,线程也有自己的ID,Linux系统提供的线程函数是:
#include <pthread.h>
int pthread_equal(pthread_t tid1, pthread_t tid2);线程可以通过pthread_self函数获得自身的线程ID。
#include <pthread.h>
pthread_t pthread_self(void);线程创建:
传统Unix进程模型中,每个进程只有一个控制线程。当需要多个线程的时候需要调用函数来进行创建。
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void * (*start_rtn)(void *), void *restrict arg);新创建的线程从start_rtn函数的地址开始运行。线程创建的时候并不能保证哪个线程会先运行:是新创建的线程还是调用线程。pthread_create()中会应用attr参数指定的属性,如果参数默认为NULL,会使用默认属性。当函数成功返回的时候,pthread_create函数将会把线程ID存储在thread参数的内存位置。
未完待续。。。。。。。
本文详细探讨了线程的概念及其在进程中的作用,通过引用《Advanced Programming in the Unix Environment》(APUE)中的相关函数,阐述了如何在Linux系统下创建、标识和管理线程。主要内容包括线程的定义、线程标识符的获取与使用、线程创建函数的原理及应用,旨在帮助开发者理解并有效利用线程进行并发编程。
145

被折叠的 条评论
为什么被折叠?



