大并发数据队列

图解

#include<stdio.h>

#include<stdlib.h>

#include<memory.h>

#define N 100

#define mytype int

struct MyQueue

{

mytype data[N];//数组存储队列

int front;//拉屎

int rear;//吃东西

};

typedef struct MyQueue myQ;

//初始化

void init(myQ *p)

{

p->front = p->rear = 0;

memset(p->data,0,sizeof(mytype)*N);

}

void print(myQ *p)

{

if(isempty(p)==1)

{

return 0;

}else{

int i;

for(i=p->front;i<p->rear;i++)

{

printf("%d",p->data[i]);

}

}

}

int isfull(myQ *p)

{

if(p->rear == N)

{

return 1;

}else

{

return 0;

}

}

int isempty(myQ *p)

{

if(p->front==p->rear)

{

return 1;

}else{

return 0;

}

}

void enQ(myQ *p,mytype insertdata)

{

if(isfull(p)==1)

{

return;

}else{

p->data[p->rear] = insertdata;

p->rear+=1;

}

}

mytype deQ(myQ *p)

{

if(isempty(p)==1)

{

return 0;

}

int index = (p->rear)-(p->front);

if(index==1)

{

return p->data[0];

}else{

int i;

// printf("\n index=%d",index);

for(i=0;i<index-1;i++)

{

p->data[i] = p->data[i+1];

}

--p->rear;

}

//printf("\n index=%d",p->rear);

return p->data[p->rear];

}

mytype array_shift(myQ *p)

{

if(isempty(p)==1)

{

exit(1);

}

else{

int num = p->front;

free(p->data[num]);

return p->data[p->front++];

}

}

mytype array_pop(myQ *p)

{

if(isempty(p)==1)

{

return 0;

}else{

int num = p->rear;

free(p->data[num]);

return p->data[--p->rear];

}

}

void main()

{

myQ my1;//创建结构体

init(&my1);

enQ(&my1,1);

enQ(&my1,2);

enQ(&my1,3);

enQ(&my1,4);

printf("\npop =%d",array_pop(&my1));

printf("\nnumber=%d",array_shift(&my1));

printf("\n one=%d",array_shift(&my1));

printf("\n two = %d",array_shift(&my1));

printf("\n three = %d",array_shift(&my1));

system("pause");

}

时间: 2024-10-04 08:44:27

大并发数据队列的相关文章

大并发大数据量请求的处理方法

大并发大数据量请求一般会分为几种情况: 1.大量的用户同时对系统的不同功能页面进行查找,更新操作 2.大量的用户同时对系统的同一个页面,同一个表的大数据量进行查询操作 3.大量的用户同时对系统的同一个页面,同一个表进行更新操作 对于第一种情况一般处理方法如下: 一.对服务器层面的处理 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Settings Queue Length : 6

关于.NET大数据量大并发量的数据连接池管理

转自:http://www.cnblogs.com/virusswb/archive/2010/01/08/1642055.html 我以前对.NET连接池的认识是错误的,原来以为在web.config中设置了连接池,每次发起的数据库连接也还是会是新的,每个sql请求就是一个连接,需要打开和关闭.因此就想设计一个连接池,然后保持固定的连接数,需要数据库连接就从连接池中取出来一个给请求用,用完毕就设置连接空闲,等待下次请求.这样看来是多余的,ADO.NET已经为我们提供这样的连接池管理,每个连接字

处理大并发量订单处理的 KafKa部署总结

处理大并发量订单处理的 KafKa部署总结 今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为公司需要它. 网上已经有很多怎么用和用到哪的内容,但结果很多人都倒在了入门第一步 环境都搭不起来,可谓是从了解到放弃,所以在此特记录如何在linux环境搭建,windows中配置一样,只是启动运行bat文件. 想要用它就先必须了解它能做什么及能做到什么程度,先看看它是什么吧. 当今社会各种应用系统诸

我是如何处理大并发量订单处理的 KafKa部署总结

今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为公司需要它. 网上已经有很多怎么用和用到哪的内容,但结果很多人都倒在了入门第一步 环境都搭不起来,可谓是从了解到放弃,所以在此特记录如何在linux环境搭建,windows中配置一样,只是启动运行bat文件. 想要用它就先必须了解它能做什么及能做到什么程度,先看看它是什么吧. 当今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断

大并发服务器开发学习笔记_01大并发服务器架构介绍

大并发服务器架构介绍 一.服务器设计目标(1)高性能(High Performance):快速请求响应:(2)高可用(High Availability):能7X24小时工作,能够进行故障转移:(3)伸缩性(Scalability):能跨机器通信:二.分布式(1)负载均载(2)分布式存储(3)分布式计算 三.C/S结构 任何网络系统都可以抽象为C/S结构 四.一个典型的服务器结构 网络I/O + 服务器高性能编程技术 + 数据库 1.超出数据库连接数:(1)问题描述: 数据库并发连接数10个,应

大并发服务器框架设计

简单谈一谈大并发服务器框架设计的基本思路 基本的服务器框架都是C/S结构的,请求和相应流程是这样的: 这样的框架存在一个很严重的问题,当客户端大并发请求到来,服务器需要进行大量的数据库操作,假设数据库最大连接数为 1000个,此时有10000个请求访问应用服务器,那么应用服务器只能处理1000个请求,剩下99000个等待1000个请求处理好后 再进行访问数据库处理.可以在应用服务器和数据库服务器中间增加中间层DAL,DAL采用缓冲队列和连接池设计. DAL设计缓冲队列,存储等待的请求,并且DAL

大并发server架构 &amp;amp;&amp;amp; 大型站点架构演变

server的三条要求: 高性能:对于大量请求,及时高速的响应 高可用:7*24 不间断,出现问题自己主动转移.这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外不论什么网络系统结构都能够抽象成C/S架构.我们常说的B/S模式本质上也是C/S架构(浏览器看作client). 一个典型的server架构: 注: epoll是linux下最高效的网络I/O 因为server须要高效处理大并发连接.因此多个位置均可能出现性能瓶颈,以下我们分析不同位置产生瓶颈的原因及其处理方法

高性能大并发server的基础

一.背景 进入多核时代已经很久了,大数据概念也吵得沸沸扬扬,不管你喜欢不喜欢,不管你遇到没遇到,big-data或bigger-data都必须正视. 处理大数据,基本都离不开分布式计算和分布式存储,这其中以hadoop最为使用广泛和经典. 分布式系统,就离不开计算系统.网络系统.文件系统和数据库系统. 这么多系统,之间又是如何协作的呢? 通讯过程又是如何保障高性能的呢? 1.单处理器 在以前的单核心cpu下,我们要实现文件I/O.网络I/O,可以妥妥的使用单线程循环处理任务. 但是如果想"同时&

大并发大数量中的MYSQL瓶颈与NOSQL介绍

NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面.今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会. 非 常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL 的发展,希望跟我一样有兴趣的朋友加入进来.这次的NoSQL专栏系列将先整体介绍NoSQL,然后介绍如何把NoSQL运用到自