APUE之线程初探

来源:互联网 发布:利比亚知乎 编辑:程序博客网 时间:2024/04/18 21:19

线程:

什么是线程?很多介绍都是“轻量级的进程”,不过感觉线程的定义一直都比较模糊,没有找到什么具体的定义。倒是觉得“进程是资源分配的最小单位,线程是调度的基本单位”,这个说法算是比较认可的。

现在主要探索的就是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参数的内存位置。

未完待续。。。。。。。

0 0
原创粉丝点击