APUE之线程初探
2016-03-23 03:55
441 查看
线程:
什么是线程?很多介绍都是“轻量级的进程”,不过感觉线程的定义一直都比较模糊,没有找到什么具体的定义。倒是觉得“进程是资源分配的最小单位,线程是调度的基本单位”,这个说法算是比较认可的。
现在主要探索的就是APUE中提供的关于线程的相关函数。
线程标示:
和进程一样,线程也有自己的ID,Linux系统提供的线程函数是:
传统Unix进程模型中,每个进程只有一个控制线程。当需要多个线程的时候需要调用函数来进行创建。
未完待续。。。。。。。
什么是线程?很多介绍都是“轻量级的进程”,不过感觉线程的定义一直都比较模糊,没有找到什么具体的定义。倒是觉得“进程是资源分配的最小单位,线程是调度的基本单位”,这个说法算是比较认可的。
现在主要探索的就是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参数的内存位置。
未完待续。。。。。。。
相关文章推荐
- Android Handler机制 (一个Thead中可以建立多个Hander,通过msg.target保证MessageQueue中的每个msg交由发送message的handler进行处理 ,但是
- 在Android子线程中初始化handler后,为什么该子线程也能更新UI?
- lightoj 1081 - Square Queries 【二维线段树】
- OpenCV3学习笔记-HighGUI初步
- 自定义UITabBar(仿微博)
- daily questions
- Flat - Music scores and guitar tabs editor(乐谱编辑器)
- UI编辑
- 如何处理php服务器端requires ext-gd 报错?
- leetcode 187. Repeated DNA Sequences
- 2、贪婪算法例子 parvalue(找零钱)
- Grub Rescue 修复引导
- POJ 1679 The Unique MST (次小生成树)
- UI和View 三种控制方式
- 安装IntelHaxm.exe是出现,This computer meets the requirements for HAXM,....
- 习题 10-23 UVA - 10479 The Hendrie Sequence
- Android——UI和View——控制方式
- windows下安装requests
- js获取checkbox被选中的value值
- leetcode62.[DP] Unique Paths