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

洛阳网站建设内容淮南做网站的公司有哪些

洛阳网站建设内容,淮南做网站的公司有哪些,wordpress 自媒体 主题,网站彩票网站开发临界资源:可以被多个执行流(线程或者叫轻量级进程)同是访问的(多个执行流共享的,比如:全局、堆等等);临界区:访问这些临界资源的代码;原子性:没有中间态&…
  1. 临界资源:可以被多个执行流(线程或者叫轻量级进程)同是访问的(多个执行流共享的,比如:全局、堆等等);
  2. 临界区:访问这些临界资源的代码;
  3. 原子性:没有中间态,不做或者做完;

1.展示没有互斥的程序 

1.1.一个购票系统,有5个线程在购票

#include<iostream>
#include<cstdio>
#include<unistd.h>
#include<pthread.h>int tickets=100;
void* thread_run(void* args)
{int tmp=*((int*)args);while(1){if(tickets>0)//购表{usleep(10000);tickets--;printf("我是%d线程,还剩%d\n",tmp,tickets);}else{printf("没票了\n");break;}}return (void*)0;
}
int main()
{pthread_t tid[5];for(int i=0;i<5;i++)//创建5个线程{int* t=new int(i);pthread_create(tid+i,NULL,thread_run,(void*)t);}for(int i=0;i<5;i++){pthread_join(tid[i],NULL);}return 0;
}

执行结果:不是每次都会产生这样的结果 ,把票购成负数了不合理

 原理:

 2.互斥

互斥整个过程:保持临界资源的原子性

pthread_mutex_t lock;//锁

pthread_mutex_init(&lock,NULL);//初始化

pthread_mutex_lock(&lock);//加锁

//临界区

pthread_mutex_unlock(&lock);//解锁

pthread_mutex_destroy(&lock);//删除锁

 修改上面代码

#include<iostream>
#include<cstdio>
#include<unistd.h>
#include<pthread.h>pthread_mutex_t lk;//锁
int tickets=100;
void* thread_run(void* args)
{int tmp=*((int*)args);while(1){pthread_mutex_lock(&lk);//加锁if(tickets>0){usleep(10000);tickets--;printf("我是%d线程,还剩%d\n",tmp,tickets);}else{printf("没票了\n");pthread_mutex_unlock(&lk);//解锁break;}pthread_mutex_unlock(&lk);//解锁}return (void*)0;
}
int main()
{pthread_mutex_init(&lk,NULL);//初始化pthread_t tid[5];for(int i=0;i<5;i++){int* t=new int(i);pthread_create(tid+i,NULL,thread_run,(void*)t);}for(int i=0;i<5;i++){pthread_join(tid[i],NULL);}pthread_mutex_destroy(&lk);//删除锁return 0;
}

3.如何保证锁的原子性(互斥的原理)

为了实现互斥锁操作,大多数体系结构都提供了swap或exchange指令(汇编):作用是把寄存器和内存单元的数据相交换

过程:每一个线程调用lock,会先把自己上下文中关于锁的变量设为0,然后和使用一行代码(原子性)交换上下文的数据和锁的数据,锁的数据被换走变成0,其它线程来交换还是0,会挂起等待循环这个过程,直到换走数据的线程解锁为止;

 如果交换走锁数据的线程时间片到了,被调度那么它也是抱着锁走的,其他线程还是不能执行临界资源

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

相关文章:

  • 临安市规划建设局网站网站建设需要哪些成本
  • 深圳建站公司价格门户网络是什么
  • 网站制作设计多少钱城乡住房和城乡建设部网站
  • 厦门物业备案建设局登什么网站静态网站设计怎么做
  • mc做图的网站网页版传奇世界什么组合最好
  • 自适应网站的代表长春网站只长春网站制作做
  • 网架公司安全员需要什么证书北京seo诊断
  • 深圳网站seo优化公司怎么做全息网站
  • 科技网站内容设计去除wordpress 广告插件
  • 网站的营销方案wordpress wp_signon
  • 学生做网站教程广东建工集团
  • 无锡网站设计开发在网站上上传文件需要怎么做
  • 上海发布微博什么是网站seo
  • 校园网站建设考评办法昌平区网站建设公司
  • 仿70网站分类目录源码什么是网页和网站
  • 广东省示范校建设专题网站网页视频下载器破解版
  • 网站域名续费后SEO查询未更换建站必须要域名吗
  • 怎样做买东西的网站中型网站流量
  • 文章响应式网站学设计的素材网站
  • 南浔城乡建设局网站河南软件开发app制作公司
  • 无锡免费做网站wordpress 导航站模板下载地址
  • aspcms网络公司官方网站源码2 网站建设的一般步骤包含哪些
  • 天猫入驻网站建设广告传媒公司黄页
  • 瑞昌市建设局网站百度推广图片尺寸要求
  • 嘉兴模板建站软件免费网站制作申请
  • 宁波专业网站公司中山网站建设找丁生
  • 南充住房和城乡建设厅网站青岛市建设监理协会网站
  • 网络推广发帖网站免费网站安全软件大全
  • 做贸易做个外贸网站有必要吗电脑上如何更新wordpress
  • 上海中学门户网站登陆饮料网站建设规划书