线程-Pthread 笔记

线程-Pthread

1.作用:

a) 单进程环境中执行多个任务

b) 一个进程中的所有线程可以访问该进程的组成部件:文件描述符和内存等

c) 资源一致性

2.线程标识

a) 每个线程有一个ID: pthread_t 数据类型

3.线程启动相关函数

a) 比较两个线程的ID pthread_equal();

b) 获取自身的线程ID pthread_self();

c) 创建线程 pthread_creat();

d) 终止线程 pthread_exit();

4.线程资源同步

a) 互斥量(mutex:

i. 初始化 pthread_mutex_init();

ii. 加锁: pthread_mutex_lock();

iii. 锁获取:pthread_mutex_trylock();

iv. 解锁: pthread_mutex_unlock();

v. 销毁: pthreadd_mutex_destory();

b) 读写锁

i. 初始化:pthread_rwlock_init();

ii. 加锁:

1. pthread_rwlock_rdlock()

2. pthread_rwlock_wrlock()

iii. 锁获取:

1. pthread_rwlock_tryrdlock()

2. pthread_rwlock_trywrlock()

iv. 解锁: pthread_rwlock_unlock()

v. 销毁: pthread_rwlock_destory();

c) 条件变量

i. 条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定条件发生

ii. 条件本身是由互斥量保护的

iii. 线程在改变条件状态前必须首先锁住互斥量,既锁住互斥量之后才能计算条件

iv. 编程思路

1. 初始化条件变量

a) pthread_cond_init();

b) static pthread_cond_t xxx = PTHREAD_COND_INITIALIZER

2. 等待条件变为真

a) pthread_cond_wait()

b) pthread_cond_timewait()

3. 条件成立唤醒

a) pthread_cond_signal() ; 针对等待该条件的某个线程

b) pthread_cond_broadcast() ;唤醒等待该条件的所有线程

5.线程和信号

a) 每个线程都有自己的信号屏蔽字,信号处理是所有线程共享的

b) 进程中的信号是递送到单个线程的

c) 

6.信号编程思路

a) 创建信号

b) 等待信号

c) 发送信号

d) 信号处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值