用一个状态来实现并发

并发的问题 ,是要能 不重复。

用一个状态  flag  来解决是一个办法。

假设要做1000件事情, 初始时,都标志为 0,代表未做。

然后发动N个人去,每次取出一个 标志为0的来做 , 当完成后,将这个标志改为1。

用这样的逻辑, 可以在系统中,迅速起N个进程。来做同样的事。

于是,当不再有状态为0 的时候,  整个事情就很快地完成了。

这里我会用到 MYSQL 数据库 。建立一个临时表。

时间: 2024-10-08 20:32:07

用一个状态来实现并发的相关文章

一个系统的最大并发用户数为1100,怎么能推算出该系统的支持最大用户数

一个系统的最大并发用户数为1100,怎么能推算出该系统的支持最大用户数. 其中用户性能要求如下:支持100万注册用户 性能需求分析: 1.根据用户的要求,本系统要支持100万用户,其中性能机器配置如何?高峰值是多少?带宽?等 2.如果都是采用公司的测试环境,那么本次性能应该做哪几种性能?性能评测.负载测试.强度测试? 3.怎么算出并发用户数?响应时间? 性能指标确定: 因为用户的性能需求太广,没有定到具体的数值.那么我怎么开展后继的工作?1.确定采用公司测试环境,不用考虑环境问题.也就是说,客户

一个简单的高并发的回应服务器(5万并发)

一个简单的高并发的回应服务器,主要是使用boost的库! 自己测试过可以达到5万个并发! 程序的下载地址:http://download.csdn.net/detail/guanyijun123/8335907 #include <stdio.h> //#include "AuthenHandle.h" //#include "configure.h" //#include "NetSocketCommand.h" #ifdef WI

实现一个支持运行时并发修改配置生效的Configuration类

可配置性是一个好的应用程序的重要指标.我们常常需要实现类似能够运行时修改配置的功能.最近在开发一个中间层的服务程序,最终发布的方式是把代码打成jar包交给调用方使用.这个中间层服务需要一些配置信息,考虑了一下有几个基本的需求: 1. 在ja包中提供一个service-defalut.properties配置文件来提供全部的默认配置.这样的好处是尽量减少对调用方的侵入.调用方可以不提供额外的配置. 2. 调用方也可以提供一个service-site.properties配置文件来提供自定义的配置信

Android初级教程:如何自定义一个状态选择器

有这样一种场景:点击一下某个按钮或者图片(view),改变了样式(一般改变背景颜色).这个时候一种解决方案,可能就是状态选择器.接下来就介绍如何实现状态选择器: 步骤: 一.新建这样的文件夹:res/drawable 二.创建一个xml文件:这里命名为my_select.xml(注意选择select类型的文件) 三.接下来在里面写如下代码: <?xml version="1.0" encoding="utf-8"?> <selector xmlns

基于c++11新标准开发一个支持多线程高并发的网络库

背景 新的c++11标准出后,c++语法得到了很多的扩展,比起以往任何时候都要灵活和高效,提高了程序编码的效率,为软件开发人员节省了不少的时间. 之前我也写过基于ACE的网络服务器框架,但ACE毕竟有些臃肿,内部对象关系错综复杂,容易给人造成只见树木不见森林的错觉. 所以打算用c++11开发一个较为简洁,高效,支持高并发的网络库. 开源         花了两三周,终于把基础的结构开发完成,代码也开源在github上,网址是 https://github.com/lichuan/fly 欢迎各位

设计模式: 自己手动写一个状态模式

状态模式: 允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类.状态模式将状态封装成独立的类,并将动作委托到代表当前状态的对象.状态模式使用组合通过简单引用不同的状态对象来造成类改变的假象. 状态模式和策略模式有相同的类图,但它们的意图不同,策略模式会用行为和算法来配置Context类.状态模式允许Context随着状态的改变而改变其行为. 源代码: </pre><pre name="code" class="java">pac

设计模式-(Memento)在不破坏封装性的前提下,捕捉类内的一个状态信息,并根据这个信息进行恢复。

以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //Memento.h #pragma once #include<string> class Memento; class Originator{ public: typedef std::string State; Originator(); virtual ~Originator(); Originator(const State& st); Memento* createMemento(); void S

如何测试一个网站的性能(并发数)?

点击打开链接 JMeter网站并发性测试 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件.Java小服务程序.CGI脚本.Java 对象.数据库, FTP服务器, 等等.JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能.另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本

聊聊高并发(三十二)实现一个基于链表的无锁Set集合

Set表示一种没有反复元素的集合类,在JDK里面有HashSet的实现,底层是基于HashMap来实现的.这里实现一个简化版本号的Set,有下面约束: 1. 基于链表实现.链表节点依照对象的hashCode()顺序由小到大从Head到Tail排列. 2. 如果对象的hashCode()是唯一的.这个如果实际上是不成立的,这里为了简化实现做这个如果.实际情况是HashCode是基于对象地址进行的一次Hash操作.目的是把对象依据Hash散开.所以可能有多个对象地址相应到一个HashCode.也就是