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

装饰网站设计模板淘宝电商运营

装饰网站设计模板,淘宝电商运营,酒店网站建设报价详情,番禺网站制作费用临界资源:可以被多个执行流(线程或者叫轻量级进程)同是访问的(多个执行流共享的,比如:全局、堆等等);临界区:访问这些临界资源的代码;原子性:没有中间态&…
  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/921396/

相关文章:

  • 公司网站建设外包华为网站建设方案模板下载
  • 西安房产网官网郑州网站优化
  • 聊城门户网站wed网站
  • 开发一个大型网站需要多少钱网站首页原型图
  • 学做网站用谁的书网络营销与直播电商专业专升本
  • 开淘宝店怎么做充值网站服装设计网站免费
  • 网站开发属于软件开发服务吗抖音代运营收费20万
  • 建网站策划方案a市最牛的网站
  • 电子商务网站的设计工具下载中心免费下载
  • 网站建设免费代理华为公司的企业设计
  • 都匀经济开发区建设局网站wordpress充值功能
  • 网站首页模板制作广西建筑模板
  • 考研门户网站的建设上海什么公司最有名
  • 润商网站建设服务花卉网站建设项目策划书
  • 重庆网站seo方法西安做网站企业
  • 网站网站制作公司哪家好网站footer怎么做
  • 垂直门户网站怎么做制作图片下载什么软件
  • 在哪些网站可以发布推广信息ai软件下载
  • 如何建微信微网站网站免费获取验证码怎么做
  • 4网站建设厦门企业网站建设补贴
  • flash做ppt的模板下载网站有哪些新手站长做装修网站
  • 响应式酒店网站模板网站数据丢失怎么办
  • 2015年做那个网站致富传奇手游官网
  • 手机网站内容设计方案网站建设国内排行
  • 网站开发的语言有什么软件包头人脸检测系统
  • 企业展示型网站php太太猫代理网址
  • 有哪些可以接单做任务的网站wordpress 正在发送请求
  • 个人建网站步骤铁岭房地产网站建设
  • 商务网站开发实训体会广州网站(建设信科网络)
  • 自己做下载网站西安注册公司在哪个网站系统