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

徐州市建设监理协会网站wordpress建一个网站吗

徐州市建设监理协会网站,wordpress建一个网站吗,软件开发一般用什么软件,优秀设计网站点评线程锁的必要性比如一个多线程抢票程序,tickets作为临界资源,所有的线程都要对它进行判断ticket是否大于0,以及ticket–的操作。用ticket–操作举例,虽然他看起来是一行C语言的代码,但是实际上它的底层汇编经历了三个阶…

线程锁的必要性

比如一个多线程抢票程序,tickets作为临界资源,所有的线程都要对它进行判断ticket是否大于0,以及ticket–的操作。用ticket–操作举例,虽然他看起来是一行C语言的代码,但是实际上它的底层汇编经历了三个阶段,分别是load命令,减法命令,以及store命令。

由于线程是不断在切换的,因此一个线程在执行完load命令之后,很可能还没来得及做减法或者写回操作,就被切走了。CPU开始执行下一个线程。所以就会出现tickets为负数的情况。

锁的原理

我们发现,tickets是所有线程都可以看到的资源,因此是临界资源。而锁也是所有线程都可以看到的资源,那么为什么它不会造成线程安全问题呢?这是因为加锁和解锁的过程是原子性的。它的关键在于:只使用一条汇编,就将内存中的数据和CPU寄存器中的数据进行交换了。

进程终止

进程终止时系统不会自动释放所持有的互斥锁、读写锁和Posix信号量,进程终止时内核总是自动清理的唯一同步锁类型是fcntl记录锁。System V信号量,应用程序可以选择进程终止时内核是否自动清理某个信号量。

要理解这一过程,首先要理解上下文数据的概念。其实就是线程被切换后它的PCB中保存着执行的数据。

当线程A到来时,假设它要抢锁,目前其他线程没有它来的快。它的寄存器al的数据现在是0,执行交换操作,将内存中mutex的值交换给A的寄存器al中,此时线程A的al值为1,内存中mutex的值为0。

当线程A被切换走时(是带着上下文数据1一起被切走的),线程B到来,它的al寄存器中的值为0(线程设置的是自己的上下文数据,互相不冲突),进行交换mutex的值和al寄存器的值(0和0交换),最终B拿到的值是0,发生挂起等待。此时就可以根据每个线程的al中寄存器的值判断是哪一个线程抢到了锁,从而只允许该线程访问临时资源。当A访问完资源后,释放锁,唤醒等待的线程,并将mutex的值置为1。

注意,拿到锁的A在访问临时资源的时候还是会被切换的,只不过其他线程此时无法访问临时资源。

站在其他线程的视角,要么A没有申请锁不能访问临界资源,要么A申请锁了访问了临界资源。因此线程A访问临界资源的动作具有原子性。

线程终止

(1)一个线程也可以在持有某个互斥锁期间终止,自己调用pthread_exit或被另一个线程取消。如果线程调用pthread_exit资源终止时,这时它应该知道自己还持有一个互斥锁(对于程序员来说),如果是被另一个线程取消的情况,线程可以安装清楚处理程序(pthread_cleanup_push),在被取消时调用来释放相应的锁。

(2)对于线程意外操作导致进程终止的情况,就和进程终止时相同。

http://www.yayakq.cn/news/958402/

相关文章:

  • 做网站定金要多少wordpress文字排版
  • 阜阳建设工程质量监督网站爱上链外链购买平台
  • 哪个做简历的网站比较好网站 安全 维护
  • 大连网站建设lccm遵义本地网站
  • 万网如何购买网站空间wordpress怎么分段
  • 网站短链接怎么做wordpress 指定页面nofollow
  • 云主机可以放多少网站如何做购物网站的后台
  • 提供信息门户网站制作网站后台不能粘贴文章
  • 看视频做那个网站好网页设计师培训水公司
  • 用什么做网站后台的网站网页的优化方法
  • 网站地址跟网页地址区别如何给自己建设的网站设置登陆用户名和密码
  • 企业网站建设的开发方式有导师微信赚钱只投资10元
  • 做一个网站需要多少钱大概cpa单页网站怎么做
  • 深圳网站建设软件开发公司无锡做网站设计
  • 网站建设服务商是什么logo高清图片
  • 一个网站需要哪些备案瑞金建设局网站
  • asp网站安装优化大师官方下载
  • 做使用的网站有哪些网络推广目标计划
  • 网站首页设计报告免费建立个人视频网站
  • 一篇网站设计小结苏州集团网站制作开发
  • 重庆网站设计公司重庆网站建设吧
  • 宁波怎么做外贸公司网站永久免费自助建站推荐
  • 需要做网站的企业资源ssh框架做音乐网站
  • 网站建设哪里实惠网站开发子账号
  • 简述电子商务网站开发的基本流程商务互联 网站
  • 建立网站团队有哪些企业网站做的不错
  • 因网站开发需要网页设计学习总结
  • 无锡网站设计哪家公司好长沙正规竞价优化推荐
  • 嘉兴做微网站多少钱福建建设信息网站监理企业招聘
  • t想学网站建设wordpress图片源码