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

蓝色系网站设计百度app最新版本

蓝色系网站设计,百度app最新版本,wordpress 改变字体,本地网站搭建视频教程322、循环队列、信号量、生产/消费者模型的源代码 一、demo1.cpp // demo1.cpp&#xff0c;本程序演示循环队列的使用。 #include "_public.h" int main() { using ElemTypeint; squeue<ElemType,5> QQ; ElemType ee; // 创建一个数据元素。 cout << &qu…

322、循环队列、信号量、生产/消费者模型的源代码
一、demo1.cpp
// demo1.cpp,本程序演示循环队列的使用。
#include "_public.h"
int main()
{
using ElemType=int;
squeue<ElemType,5> QQ;
ElemType ee; // 创建一个数据元素。
cout << "元素(1、2、3)入队。\n";
ee=1; QQ.push(ee);
ee=2; QQ.push(ee);
ee=3; QQ.push(ee);
cout << "队列的长度是" << QQ.size() << endl;
QQ.printqueue();
ee=QQ.front(); QQ.pop(); cout << "出队的元素值为" << ee << endl;
ee=QQ.front(); QQ.pop(); cout << "出队的元素值为" << ee << endl;
cout << "队列的长度是" << QQ.size() << endl;
QQ.printqueue();
cout << "元素(11、12、13、14、15)入队。\n";
ee=11; QQ.push(ee);
ee=12; QQ.push(ee);
ee=13; QQ.push(ee);
ee=14; QQ.push(ee);
ee=15; QQ.push(ee);
cout << "队列的长度是" << QQ.size() << endl;
QQ.printqueue();
}
二、demo2.cpp
// demo2.cpp,本程序演示基于共享内存的循环队列。
#include "_public.h"
int main()
{
using ElemType=int;
// 初始化共享内存。
int shmid=shmget(0x5005, sizeof(squeue<ElemType,5>), 0640|IPC_CREAT);
if ( shmid ==-1 )
{
cout << "shmget(0x5005) failed.\n"; return -1;
}
// 把共享内存连接到当前进程的地址空间。
squeue<ElemType,5> *QQ=(squeue<ElemType,5> *)shmat(shmid,0,0);
if ( QQ==(void *)-1 )
{
cout << "shmat() failed\n"; return -1;
}
QQ->init(); // 初始化循环队列。
ElemType ee; // 创建一个数据元素。
cout << "元素(1、2、3)入队。\n";
ee=1; QQ->push(ee);
ee=2; QQ->push(ee);
ee=3; QQ->push(ee);
cout << "队列的长度是" << QQ->size() << endl;
QQ->printqueue();
ee=QQ->front(); QQ->pop(); cout << "出队的元素值为" << ee << endl;
ee=QQ->front(); QQ->pop(); cout << "出队的元素值为" << ee << endl;
cout << "队列的长度是" << QQ->size() << endl;
QQ->printqueue();
cout << "元素(11、12、13、14、15)入队。\n";
ee=11; QQ->push(ee);
ee=12; QQ->push(ee);
ee=13; QQ->push(ee);
ee=14; QQ->push(ee);
ee=15; QQ->push(ee);
cout << "队列的长度是" << QQ->size() << endl;
QQ->printqueue();
shmdt(QQ); // 把共享内存从当前进程中分离。
}
三、demo3.cpp
// demo3.cpp,本程序演示用信号量给共享内存加锁。
#include "_public.h" struct stgirl // 超女结构体。
{
int no; // 编号。
char name[51]; // 姓名,注意,不能用 string。
};
int main(int argc,char *argv[])
{
if (argc!=3) { cout << "Using:./demo no name\n"; return -1; }
// 第 1 步:创建/获取共享内存,键值 key 为 0x5005,也可以用其它的值。
int shmid=shmget(0x5005, sizeof(stgirl), 0640|IPC_CREAT);
if ( shmid ==-1 )
{
cout << "shmget(0x5005) failed.\n"; return -1;
}
cout << "shmid=" << shmid << endl;
// 第 2 步:把共享内存连接到当前进程的地址空间。
stgirl *ptr=(stgirl *)shmat(shmid,0,0);
if ( ptr==(void *)-1 )
{
cout << "shmat() failed\n"; return -1;
}
// 创建、初始化二元信号量。
csemp mutex;
if (mutex.init(0x5005)==false)
{
cout << "mutex.init(0x5005) failed.\n"; return -1;
}
cout << "申请加锁...\n";
mutex.wait(); // 申请加锁。
cout << "申请加锁成功。\n";
// 第 3 步:使用共享内存,对共享内存进行读/写。
cout << "原值:no=" << ptr->no << ",name=" << ptr->name << endl; // 显示共享内存
中的原值。
ptr->no=atoi(argv[1]); // 对超女结构体的 no 成员赋值。
strcpy(ptr->name,argv[2]); // 对超女结构体的 name 成员赋值。
cout << "新值:no=" << ptr->no << ",name=" << ptr->name << endl; // 显示共享内存
中的当前值。
sleep(10);
mutex.post(); // 解锁。
cout << "解锁。\n";
// 查看信号量 :ipcs -s // 删除信号量 :ipcrm sem 信号量 id
// 查看共享内存:ipcs -m // 删除共享内存:ipcrm -m 共享内存 id
// 第 4 步:把共享内存从当前进程中分离。
shmdt(ptr);
// 第 5 步:删除共享内存。
//if (shmctl(shmid,IPC_RMID,0)==-1)
//{
// cout << "shmctl failed\n"; return -1;
//}
}
 

http://www.ds6.com.cn/news/97544.html

相关文章:

  • 安徽省住房和建设厅门户网站苏州百度关键词优化
  • tq网站建设门户网站有哪些
  • 新手做网站需要哪些软件晋城今日头条新闻
  • 怎么在b2b网站上发信息让百度收录怎么做网站快速排名
  • 个人简历模板网站新乡网站优化公司价格
  • 营销型网站建设公司价格电商运营培训班
  • 怎么用腾讯云做网站上海营销seo
  • 网站开发去哪里找程序员搜索引擎营销的原理
  • 网站开发目标网络广告代理
  • 专业做网站app真假宁波seo优化费用
  • 网站建设多少钱鞋网络服务提供商是指
  • 怎么在电脑上自己做网站吗百度搜索指数
  • 网站注册收入全网推广方案
  • 林西网站建设优化什么是百度推广
  • 淄博网站建设有实力国外网站推广平台有哪些?
  • 外贸展示型模板网站广东省自然资源厅
  • 建设视频网站需要什么知识网站开发一般多少钱
  • 网站建设丶金手指专业宁德市区哪里好玩
  • 做外包的网站有哪些问题如何提高搜索引擎优化
  • 天津哪里做网站河南郑州做网站的公司
  • vps如何建两个网站合作seo公司
  • 软件开发网站建设维护网络营销策略分析报告
  • 欢迎访问中国建设银行官方网站百度广告竞价
  • 厦门软件园网站建设网络平台推广方式
  • 网站建设投标书组成网络促销方案
  • 网站建设后台百度官网下载安装到桌面上
  • 山东莱钢建设有限公司网站创新营销方式有哪些
  • 世界500强企业排名2021做seo需要用到什么软件
  • 建立网站并以此为基础从事经营活动的企业称为什么如何推广app
  • 微信scrm在线排名优化工具