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

北京商城型网站建设网站开发教程

北京商城型网站建设,网站开发教程,建设一个网站的具体步骤,王烨捷问题&#xff1a; 有一个进程&#xff0c;创建了2个线程&#xff0c;线程A和线程B&#xff0c;线程A与线程B都需要访问某一资源。 所以在进程中初始化了一个pthread_mutex_t变量resMutex; pthread_mutex_init(&resMutex, NULL); 线程A的工作&#xff1a; for (i0;i<…

问题:

有一个进程,创建了2个线程,线程A和线程B,线程A与线程B都需要访问某一资源。

所以在进程中初始化了一个pthread_mutex_t变量resMutex;

pthread_mutex_init(&resMutex, NULL);

 

线程A的工作:

for (i=0;i<100;i++)

{

   pthread_mutex_lock(&resMutex);

   use resource

   pthread_mutex_unlock(&resMutex);

}

 

线程B平时读消息队列,收到消息后执行一次如下操作:

pthread_mutex_lock(&resMutex);

use resource

pthread_mutex_unlock(&resMutex);

 

发现执行情况:

   线程A lock mutex

   线程A 访问资源

   线程B lock mutex 阻塞

   线程A unlock mutex

   线程A lock mutex

   线程A 访问资源

   线程A unlock mutex

   ...

   线程A的工作执行完,最后一次unlock mutex

   线程B lock mutex 成功返回

   线程B 访问资源

   线程B unlock mutex

 

就是线程A工作时,线程B一直抢占不到mutex。

查了下手册,默认的mutex类型应该是PTHREAD_MUTEX_TIMED_NP,按手册来说,这种锁当一个线程加锁以后,其余请求锁的线程将形成一个等待队列,并在解锁后按优先级获得锁。

线程A加锁后,只有线程B请求锁,那么为什么线程A解锁后,线程B并没有马上得到锁,而是线程A下一循环周期的加锁请求又得到锁了呢?

 

然后我尝试了一下,在线程A解锁后加了一点延时,线程B就能够在线程A本周期解锁后得到锁了。

 

A线程持续持有资源

求解

 

 

 

 

 

 

理解解释:

 

 服务器死了 又得重写一遍。。

自己实验了下 当i==10000的时候才会出现明显的线程切换现象。

 

猜想: 

  当A线程放弃资源之前,会告诉内核,然后内核查看申请队列。如果是空,就继续让A持有资源。

   如果有线程申请该资源,A线程会放弃该资源。但这是个漫长的过程。

   因此在这个过程中,A继续能获得B资源。

 

当过了N年之后,线程B知道了  ,A资源已经跟A线程分离了 才能趁虚而入。

 

线程调度基本上有两种 1是先来先服务 2是优先级高的先服务。明显这里 用的是先来先服务。 但是B线程一直没有得到内核发出的A资源已经可以被使用的信号。所以A资源占了点便宜。能够继续占有资源。  cpu处理跟IO设备的时间差,才是操作系统存在的根本原因。时间差是王道啊。

 

 

 

我的理解:

A设备解锁,内核发布告诉申请这个资源的线程们,这个资源可以抢了.原则:先来先服务.

然后A/B开始抢资源,资源A设备刚用完,还在A设备手上.所以A设备立即抢,时间花费极小;

但是B从收到抢的信号到开始抢,需要花费一定的时间,肯定抢不过A设备的.

所以A理所当然的把资源抢到了,然后加锁,内核就宣布本回合结束.资源被A设备抢到,A设备可以用,其他设备等待.

所以B就不抢了,继续等待如此循环下去了….所以A一直占用资源,B一直抢不到.

 

来自 <https://bbs.csdn.net/topics/360180262>

http://www.hkea.cn/news/37875/

相关文章:

  • 旅游网站首页四种营销模式
  • 负责网站建设如何在百度发广告推广
  • 联通的网站是谁做的营销的主要目的有哪些
  • 衡阳微信网站地推的方法和技巧
  • 南阳做网站公司哪家好自动发外链工具
  • 潍坊网站制作最低价格网络营销案例有哪些
  • 做网站有谁做谷歌seo视频教程
  • 资深的网站推广完美日记网络营销策划书
  • 90设计网站免费素材网站seo培训
  • 整形美容网站源码上海seo优化bwyseo
  • 武威市住房和建设局网站百度app下载安装普通下载
  • 网站物理结构天津百度推广排名
  • 美容平台网站建设百度指数查询移动版
  • 工程公司手机网站建立网站怎么搞
  • 做网站软件wd惠州seo外包
  • 聊城做网站seo关键词分类
  • 网站做公司女生学网络营销这个专业好吗
  • 网络运营主要工作内容seo教程自学入门教材
  • 用其他商标在自己网站做宣传百度云网盘资源分享网站
  • 对商家而言网站建设的好处淘宝关键词查询工具哪个好
  • 做简单网站代码关键词推广价格
  • 做品牌折扣的网站百度推广的五大优势
  • 南宁比较有好的网站制作公司百度推广后台登录页面
  • 长沙企业网站排名优化windows优化大师和360哪个好
  • 珠海网站开发维护科技公司免费的网络推广渠道有哪些
  • wp建站系统微信营销管理软件
  • 本地打开WordPress慢百度seo优化分析
  • 适合友情链接的网站排名函数
  • 开发公司岗位设置广州seo招聘网
  • 国内web设计网站宣传推广