码迷,mamicode.com
首页 > 编程语言 > 详细

Unix环境高级编程学习笔记(七):线程

时间:2015-04-03 21:03:36      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

1 线程包含线程ID,一组寄存器的值,栈,调度优先级和策略,信号屏蔽字,errno变量,以及线程私有数据。进程的所有信息对于该进程的所有线程都是共享的,包括可执行程序文本,程序全局内存和堆内存,栈以及文件描述符。

线程可以通过pthread_self函数获得自身线程ID

#include<pthread.h>
pthread_t pthread_self(void)

 


新增进程可以通过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)

 


tidp指向的内存单元被设置为新创建线程的线程id,
attr用于指定线程的属性,现在暂时把它设为NULL,
线程从start_rtn函数的地址开始运行,strat_rtn只有一个无类型的指针参数arg,如果有多个参数,把它们放入结构体,通过arg传入

2 线程终止

#include <pthread.h>
void pthread_exit(void *roal_ptr)

 



可以通过pthread_cancel函数取消同一进程中其他线程

void pthread_cancel(pthread_t tid)

 



3 线程同步
创造/消除互斥量

int pthread_mutex_init(pthread_mutex_t *restrict mutex,
                        const pthread_mutexattr_t *restrict attr);
int pthread_mutex_destroy(pthread_mutex_t *mutex);

#include <pthread.h>
int pthread_mutex_lock(pthread_mutex_t *mutex);
int pthread_mutex_trylock(pthread_mutex_t *mutex);
int pthread_mutex_unlock(pthread_mutex_t *mutex);

 

Unix环境高级编程学习笔记(七):线程

标签:

原文地址:http://www.cnblogs.com/zhangfann/p/4390954.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!