当前位置: 首页 > news >正文

dw怎么做网站首页/电商广告网络推广

dw怎么做网站首页,电商广告网络推广,做网站推广 优帮云,校园文化建设一、定义:/linux/include/linux/mutex.h二、作用及访问规则:互斥锁主要用于实现内核中的互斥访问功能。内核互斥锁是在原子 API 之上实现的,但这对于内核用户是不可见的。对它的访问必须遵循一些规则:同一时间只能有一个任务持有互…
一、定义:
/linux/include/linux/mutex.h
二、作用及访问规则:
互斥锁主要用于实现内核中的互斥访问功能。内核互斥锁是在原子 API 之上实现的,但这对于内核用户是不可见的。
对它的访问必须遵循一些规则:同一时间只能有一个任务持有互斥锁,而且只有这个任务可以对互斥锁进行解锁。互斥锁不能进行递归锁定或解锁。一个互斥锁对象必须通过其API初始化,而不能使用memset或复制初始化。一个任务在持有互斥锁的时候是不能结束的。互斥锁所使用的内存区域是不能被释放的。使用中的互斥锁是不能被重新初始化的。并且互斥锁不能用于中断上下文。
    互斥锁比当前的内核信号量选项更快,并且更加紧凑。
 
三、各字段详解:
1、atomic_t count;  //指示互斥锁的状态: 
     1:没有上锁,可以获得;
0:被锁定,不能获得。
     负数:被锁定,且可能在该锁上有等待进程 ,初始化为没有上锁。 
2、spinlock_t wait_lock;   //等待获取互斥锁中使用的自旋锁。在获取互斥锁的过程中,操作会在自旋锁的保护中进行。初始化为为锁定。 
3、struct list_head wait_list;  //等待互斥锁的进程队列。
四、操作
1、定义并初始化:
struct mutex mutex;
mutex_init(&mutex);
 
    直接定义互斥锁mutex并初始化为未锁定,即count为1,wait_lock为未上锁,等待队列wait_list为空。
 
2、获取互斥锁:
(1)代码:linux/kernel/mutex.c
void inline fastcall __sched mutex_lock(struct mutex *lock);    //获取互斥锁。
    实际上是先给count做自减操作,然后使用本身的自旋锁进入临界区操作。首先取得count的值,在将count置为-1,判断如果原来count的置为1,也即互斥锁可以获得,则直接获取,跳出。否则进入循环反复测试互斥锁的状态。在循环中,也是先取得互斥锁原来的状态,在将其之为-1,判断如果可以获取(等于1),则退出循环,否则设置当前进程的状态为不可中断状态,解锁自身的自旋锁,进入睡眠状态,待被在调度唤醒时,再获得自身的自旋锁,进入新一次的查询其自身状态(该互斥锁的状态)的循环。
 
(2)具体参见linux/kernel/mutex.c
int fastcall __sched mutex_lock_interruptible(struct mutex *lock);
和mutex_lock()一样,也是获取互斥锁。在获得了互斥锁或进入睡眠直到获得互斥锁之后会返回0。如果在等待获取锁的时候进入睡眠状态收到一个信号(被信号打断睡眠),则返回_EINIR。
 
(3)具体参见linux/kernel/mutex.c
int fastcall __sched mutex_trylock(struct mutex *lock);
试图获取互斥锁,如果成功获取则返回1,否则返回0,不等待。
 
3、释放互斥锁:
具体参见linux/kernel/mutex.c
void fastcall mutex_unlock(struct mutex *lock);
释放被当前进程获取的互斥锁。该函数不能用在中断上下文中,而且不允许去释放一个没有上锁的互斥锁。
 
五、使用形式:
struct mutex mutex;
mutex_init(&mutex); /*定义*/
...
mutex_lock(&mutex); /*获取互斥锁*/
... /*临界资源*/
mutex_unlock(&mutex); /*释放互斥锁*/

 

转载于:https://www.cnblogs.com/huangchaosong/p/7127532.html

http://www.jmfq.cn/news/5043079.html

相关文章:

  • 短视频素材大全/南宁seo外包服务商
  • 深圳微信网站开发/上海品牌推广公司
  • 国内网站建设/如何用google搜索产品关键词
  • 盐城网站建设哪家快/网络营销案例实例
  • 云梦做网站/域名注册需要多少钱
  • 北京网站制作一般多少钱/360免费做网站
  • 电影宣传网站开发设计/论坛推广的步骤
  • 不会写代码怎么做网站/沈阳头条今日头条新闻最新消息
  • 1.86神华网站两学一做/中国网络营销公司排名
  • 网站怎么做rss/怎样申请网站
  • 营销型网站建设易网拓/百度快照首页
  • wordpress建站/刷排名有百度手机刷排名
  • 建网站电话/网站推广优化招聘
  • 东莞手机网站建设/谁有恶意点击软件
  • 网站建设内容保障制度/个人发布信息的免费平台
  • 珠海cp网站建设/人工智能培训师
  • 可以做两个网站指向同一个域名/惠州网站推广排名
  • 绵阳科技网站建设/注册网站平台
  • 淘宝网站做淘宝客/2022年最近十大新闻
  • 网站建设框架模板/今天新疆新闻头条
  • 教我做网站/seo关键词优化排名外包
  • 南京公司网站建设平台/啦啦啦资源视频在线观看8
  • 网站 月15g流量够用吗/自己做网站难吗
  • 百度收录网站/营销模式有几种
  • 做暖暖免费视频网站/百度营销官网
  • 百度认证官方网站/2023年10月爆发新冠
  • 上海网站建设技术/友情链接百科
  • 网站icp备案认证怎么做/app如何推广以及推广渠道
  • 本地网站建设的步骤过程/谷歌排名查询
  • 网站建设找谁做/西安百度首页优化