- 1
- 0
- 约5.24万字
- 约 64页
- 2017-08-20 发布于浙江
- 举报
Posix多线程编程学系陌笔记
Posix多线程编程学习笔记(一)—线程基础(1)
一.什么是线程
典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。
二.线程的优点
(1)
(2)
(3)
(4)
三.线程的缺点
线程也有不足之处。编写多线程程序需要更全面更深入的思考。在一个多线程程序里,因时间分配上的细微偏差或者因共享了不该共享的变量而造成不良影响的可能性是很大的。调试一个多线程程序也比调试一个单线程程序困难得多。
四.线程的结构
线程包含了表示进程内执行环境必需的信息,其中包括进程中标识线程的线程ID,一组寄存器值、栈、调度优先级和策略、信号屏蔽子,errno变量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本,程序的全局内存和堆内存、栈以及文件描述符。
五.线程标识
就像每个进程有一个进程ID一样,每个线程也有一个线程ID,进程ID在整个系统中是唯一的,但线程不同,线程ID只在它所属的进程环境中有效。线程ID用pthread_t数据类型来表示,实现的时候可以用一个结构来代表pthread_t数据类型,所以可以移植的操作系统不能把它作为整数处理。因此必须使用函数来对来对两个线程ID进行比较。
1.
名称:: pthread_equal 功能: 比较两个线程ID 头文件: #include pthread.h 函数原形: int pthread_equal(pthread_t tid1,pthread_t tid2); 参数: tid1 进程1id
tid2 进程2id 返回值: 若相等返回非0值,否则返回0
2.
名称:: pthread_self 功能: 获取自身线程的id 头文件: #include pthread.h 函数原形: pthread_t pthread_self(void); 参数: 无 调用线程的线程id Posix多线程编程学习笔记(一)—线程基础(2)
3.
名称:: pthread_create 功能: 创建线程 头文件: #include pthread.h 函数原形: int pthread_create(pthread_t *restrict tidp,
const pthread _attr_t *restrict attr,
void *(*start_rtn)(void),
void *restrict arg); 参数: 返回值: 若成功返回则返回0,否则返回错误编号 当pthread_creat成功返回时,
tidp指向的内存单元被设置为新创建线程的线程ID。
attr参数用于定制各种不同的线程属性。可以把它设置为NULL,创建默认的线程属性。
新创建的线程从start_rtn函数的地址开始运行,该函数只有一个无类型指针参数arg,
如果需要向start_rtn函数传递的参数不止一个,那么需要把这些参数放到一个结构中,然后把这个结构的地址作为arg参数传入。
#include pthread.h
void printids(const char *s)
{
printf(“%s pid:%u tid:%u \n“, getpid(),pthread_self());
}
void *thr_fn(void *arg)
{
printf (“new thread: “);
}
int main()
{
int err;
pthread_t tid;
err=pthread_create(tid,NULL,thr_fn,NULL);
if(err=0)
printf(“can’t create thread:%s\n”,strerror(err));
printids(“main thread: “);
sleep(1);
exit(0);
} 关于进程的编译我们都要加上参数 –lpthread 否则提示找不到函数的错误。
具体编译方法是 cc –lpthread –o gettid gettid.c
运行结果为
main thread: pid 14954 tid 134529024
new thread: pid 14954 tid 134530048
七..线程的终止
线程是依进程而存在的,当进程终止时,线程也就终止了。当然也有在不终止整个进程的情况下停止它的控制流。
(1)线程只是从启动例程中返回,返回值是线程的退出码。
(2)线程可以被同一进程中的其他线程取
您可能关注的文档
最近下载
- 2023-2024学年新疆乌鲁木齐市第一中学七年级上学期期末考试英语试卷 含答案.docx VIP
- 2025年辽宁职业学院单招(语文)测试题库新版.docx VIP
- 金属技术监督管理标准.pdf VIP
- 主变培训精品.pptx VIP
- 2025年学校培训初中地理新课标学习解读.pptx VIP
- 市中级人民法院党组2025年度民主生活会对照检查材料(五个带头).docx VIP
- 部编三上道德与法治期末复习填空选择 小学道德与法治试卷.pdf
- 广东省广州市越秀区2023-2024学年五年级上学期期末英语试题.docx VIP
- 2026年海南财金银河私募基金管理有限公司招聘备考题库参考答案详解.docx VIP
- 2020山东青岛中考《英语》试卷+答案+解析.docx VIP
原创力文档

文档评论(0)