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

如何做网站竞品分析哪个网站可以接任务做兼职

如何做网站竞品分析,哪个网站可以接任务做兼职,北京通智能小程序,网站首页用什么字体好一、概念 在进程/线程并发执行的过程中#xff0c;进程/线程之间存在协作的关系#xff0c;例如有互斥、同步的关系。 1.互斥 由于多线程执行操作共享变量的这段代码可能会导致竞争状态#xff0c;因此我们将此段代码称为临界区#xff08;critical section#xff09;…一、概念 在进程/线程并发执行的过程中进程/线程之间存在协作的关系例如有互斥、同步的关系。 1.互斥 由于多线程执行操作共享变量的这段代码可能会导致竞争状态因此我们将此段代码称为临界区critical section它是访问共享资源的代码片段一定不能给多线程同时执行。 互斥mutualexclusion保证一个线程在临界区执行时其他线程应该被阻止进入临界区。 在多进程竞争共享资源的时候也同样是可以使用互斥的方式来避免资源竞争造成的资源混乱。 2.同步 互斥解决了并发进程/线程对临界区的使用问题。 所谓同步就是并发进程/线程在一些关键点上可能需要互相等待与互通消息这种相互制约的等待与互通信息称为进程/线程同步。(有一个等待唤醒的过程) 注意同步与互斥是两种不同的概念 同步就好比「操作 A 应在操作 B 之前执行」「操作 C 必须在操作 A 和操作 B 都完成之后才能执行」等互斥就好比「操作 A 和操作 B 不能在同一时刻执行」 二、互斥与同步的实现与使用 为了实现进程/线程间正确的协作操作系统必须提供实现进程协作的措施和方法主要的方法有两种 锁加锁、解锁操作实现互斥信号量P、V 操作实现互斥、同步 1.锁 使用加锁操作和解锁操作可以解决并发线程/进程的互斥问题。 任何想进入临界区的线程必须先执行加锁操作。若加锁操作顺利通过则线程可进入临界区在完成对临界资源的访问后再执行解锁操作以释放该临界资源。 「忙等待锁」 自旋锁spin lock         当获取不到锁时线程就会一直 while 循环不做任何事情所以就被称为「忙等待锁」也被称为自旋锁spin lock。         这是最简单的一种锁一直自旋利用 CPU 周期直到锁可用。在单处理器上需要抢占式的调度器即不断通过时钟中断一个线程运行其他线程。否则自旋锁在单 CPU 上无法使用因为一个自旋的线程永远不会放弃 CPU。 「无忙等待锁」         无等待锁顾明思议就是获取不到锁的时候不用自旋。         既然不想自旋那当没获取到锁的时候就把当前线程放入到锁的等待队列然后执行调度程序把 CPU 让给其他线程执行。 2.信号量 信号量不仅可以实现临界区的互斥访问控制还可以线程间的事件同步。 通常信号量表示资源的数量对应的变量是一个整型sem变量。 另外还有两个原子操作的系统调用函数来控制信号量的分别是 P 操作将 sem 减 1相减后如果 sem 0则进程/线程进入阻塞等待否则继续表明 P 操作可能会阻塞V 操作将 sem 加 1相加后如果 sem 0唤醒一个等待中的进程/线程表明 V 操作不会阻塞 信号量实现临界区的互斥访问 为每类共享资源设置一个信号量 s其初值为 1表示该临界资源未被占用。 只要把进入临界区的操作置于 P(s) 和 V(s) 之间即可实现进程/线程互斥 信号量实现事件同步 同步的方式是设置一个信号量其初值为 0。 3.生产者-消费者问题 生产者-消费者问题描述 生产者在生成数据后放在一个缓冲区中消费者从缓冲区取出数据处理任何时刻只能有一个生产者或消费者可以访问缓冲区 我们对问题分析可以得出 任何时刻只能有一个线程操作缓冲区说明操作缓冲区是临界代码需要互斥缓冲区空时消费者必须等待生产者生成数据缓冲区满时生产者必须等待消费者取出数据。说明生产者和消费者需要同步。 那么我们需要三个信号量分别是 互斥信号量 mutex用于互斥访问缓冲区初始化值为 1资源信号量 fullBuffers用于消费者询问缓冲区是否有数据有数据则读取数据初始化值为 0表明缓冲区一开始为空资源信号量 emptyBuffers用于生产者询问缓冲区是否有空位有空位则生成数据初始化值为 n 缓冲区大小 三、经典同步问题 1.哲学家就餐问题 先来看看哲学家就餐的问题描述 5 个老大哥哲学家闲着没事做围绕着一张圆桌吃面巧就巧在这个桌子只有 5 支叉子每两个哲学家之间放一支叉子哲学家围在一起先思考思考中途饿了就会想进餐奇葩的是这些哲学家要两支叉子才愿意吃面也就是需要拿到左右两边的叉子才进餐吃完后会把两支叉子放回原处继续思考 那么问题来了如何保证哲 学家们的动作有序进行而不会出现有人永远拿不到叉子呢 方案一用信号量的方式也就是 PV 操作来尝试解决 方案二既然「方案一」会发生同时竞争左边叉子导致死锁的现象那么我们就在拿叉子前加个互斥信号量 方案三即让偶数编号的哲学家「先拿左边的叉子后拿右边的叉子」奇数编号的哲学家「先拿右边的叉子后拿左边的叉子」。 方案四 用一个数组 state 来记录每一位哲学家的三个状态分别是在进餐状态、思考状态、饥饿状态正在试图拿叉子。 那么一个哲学家只有在两个邻居都没有进餐时才可以进入进餐状态。 第 i 个哲学家的左邻右舍则由宏 LEFT 和 RIGHT 定义 LEFT : ( i 5 - 1 ) % 5RIGHT : ( i 1 ) % 5 比如 i 为 2则 LEFT 为 1RIGHT 为 3。 2.读者-写者问题 著名的问题是「读者-写者」它为数据库访问建立了一个模型。 读者只会读取数据不会修改数据而写者即可以读也可以修改数据。 读者-写者的问题描述 「读-读」允许同一时刻允许多个读者同时读「读-写」互斥没有写者时读者才能读没有读者时写者才能写「写-写」互斥没有其他写者时写者才能写 方案一读者优先策略 方案二写者优先策略 方案三公平策略 对比方案一的读者优先策略可以发现读者优先中只要后续有读者到达读者就可以进入读者队列 而写者必须等待直到没有读者到达。 没有读者到达会导致读者队列为空即 rCount0此时写者才可以进入临界区执行写操作。 而这里 flag 的作用就是阻止读者的这种特殊权限特殊权限是只要读者到达就可以进入读者队列。 比如开始来了一些读者读数据它们全部进入读者队列此时来了一个写者执行 P(falg) 操作使得后续到来的读者都阻塞在 flag 上不能进入读者队列这会使得读者队列逐渐为空即 rCount 减为 0。 这个写者也不能立马开始写因为此时读者队列不为空会阻塞在信号量 wDataMutex 上读者队列中的读者全部读取结束后最后一个读者进程执行 V(wDataMutex)唤醒刚才的写者写者则继续开始进行写操作。 四、参考 小林 coding
http://www.pierceye.com/news/493350/

相关文章:

  • 佛山网站关键词网站建设需求分析文档
  • 网站收录地址旅游网站建设的相关报价
  • seo月薪seo优化方法网站快速排名推广渠道
  • 企业网站设计理念如何seo网站
  • 河南移动商城网站建设怎么创建平台卖自己的产品
  • 网上做网站钱被骗了报案有用吗文章自定义wordpress
  • 网站设置成灰色市场监督管理局是什么单位
  • 北京国贸网站建设wordpress需要付费才能看某些页面
  • 郸城网站建设wordpress教程cms
  • 做本地网站赚钱吗?php网站制作过程中遇到的问题及解决办法
  • 上海网站快速排名提升ui是网站建设吗
  • 中信建设有限责任公司洪波seo外链工具
  • 网站服务器和空间有什么区别网站制作的公司哪家效果好
  • 做网站具体收费梅州南站
  • 淘宝禁止了网站建设类wordpress极速优化
  • 山东app网站制作网站建设优化广告流量
  • 做阿里云网站浏览器编程语言
  • 青岛市网站制作企业邮箱密码忘了怎么重置密码
  • 文交所网站开发和业务多一样的平台
  • 如何免费自己做网站wordpress成品图
  • thinkphp做中英文网站电子商务网站建设的步骤一般为
  • 网站编程 mysql小说关键词搜索器
  • 农业网站开发企业名录搜索软件免费
  • 临沂医院手机网站建设上饶专业做网站建设
  • 超酷html5效果的工作室网站程序宝洁网站建设
  • 网销的网站建设与管理曲阜市网站建设
  • 类似一起做网站的网站珠海网站建设王道下拉強
  • wordpress 当前文章id益阳网站seo
  • 湖南对外建设集团网站成都著名网站
  • 手机网站制作的公司wordpress分类目录添加图片