博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阻塞与非阻塞知识点总结
阅读量:4302 次
发布时间:2019-05-27

本文共 656 字,大约阅读时间需要 2 分钟。

current代表当前进程,源代码如下:

static inline struct task_struct *get_current()

#define current (get_current())

实现阻塞方法:

实现阻塞: 默认情况,大部分的函数默认都是阻塞

 scanf()-- fgets()
 accept(); read/recv/recvfrom
0---需要一个等待队列头
struct __wait_queue_head wait_queue_head_t;
init_waitqueue_head(struct wait_queue_head_t *q)
// 参数1---表示等待队列头
// 参数2---表示一个条件--如果为假,就在此休眠,如果为真,就不休眠
1,根据条件可以让进程进入到休眠状态

wait_event_interruptible(struct wait_queue_head_t wq, int condition)

set_current_state(TASK_INTERRUPTIBLE);     等同

add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);  

schedule(void);

 三个函数等同于: wait_event_interruptible(queue,condition);

2, 资源可达的时候需要唤醒
wake_up_interruptible(wait_queue_head_t *q)

转载地址:http://lemws.baihongyu.com/

你可能感兴趣的文章
资金流入流出计算方法
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则09_海龟式积木
查看>>
海龟交易法则10_通用积木
查看>>
海龟交易法则14_掌控心魔
查看>>
海龟交易法则15_万事俱备
查看>>
海龟交易法则16_附原版海龟交易法则
查看>>
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>
克罗谈投资策略04_感觉与现实
查看>>
通向财务自由之路01_导读
查看>>
通向财务自由之路02_成功的决定因素:你
查看>>
中低频量化交易策略研发01_引言
查看>>
中低频量化交易策略研发06_推进的择时策略
查看>>
史丹·温斯坦称傲牛熊市的秘密
查看>>
期货市场技术分析01_理论基础
查看>>
期货市场技术分析02_趋势的基本概念
查看>>
期货市场技术分析03_主要反转形态
查看>>