using System;
using System.Collections.Generic;
using System.Threading; namespace 生产者消费者
{
class Program
{
static int r;
static Queue<int> q = new Queue<int>();
static Object obj;
static int c = 0;
static void Main(string[] args)
{ obj = new Object();
var _worker = new Thread(生产);
_worker.Start();
//var _worker2 = new Thread(生产);
//_worker2.Start();
var 消费者1 = new Thread(消费者);
消费者1.Start();
var 消费者2 = new Thread(消费者);
消费者2.Start();
var 消费者3 = new Thread(消费者);
消费者3.Start();
var 消费者4 = new Thread(消费者);
消费者4.Start();
var 消费者5 = new Thread(消费者);
消费者5.Start();
Console.ReadKey();
Console.WriteLine("f:" + c);
Console.ReadKey();
} private static void 消费者()
{ while (true)
{
bool stat = false;
lock (obj)
{
stat = q.TryDequeue(out r);
if (stat)
{
c++;
Console.WriteLine(q.Count+":"+r);
} }
if (stat == false)
{
Thread.Sleep(100);
} }
} private static void 生产()
{
for (int i = 1; i <= 10000 / 2; i++)
{ lock (obj)
{ q.Enqueue(i);
}
}
}
}
}

  

生产者消费者demo的更多相关文章

  1. java kafka 生产者消费者demo

    一.修改kafka   server.porperties的ip是你本机的ip listeners=PLAINTEXT://192.168.111.130:9092 二.生产者的例子 import o ...

  2. 图文并茂的生产者消费者应用实例demo

    前面的几篇文章<<.NET 中的阻塞队列BlockingCollection的正确打开方式>><<项目开发中应用如何并发处理的一二事>>从代码以及理论角 ...

  3. Scala调用Kafka的生产者和消费者Demo,以及一些配置参数整理

    kafka简介 Kafka是apache开源的一款用Scala编写的消息队列中间件,具有高吞吐量,低延时等特性. Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受 ...

  4. Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  5. Java 生产者消费者模式详细分析

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  6. 利用生产者消费者模型和MQ模型写一个自己的日志系统-并发设计里一定会用到的手段

    一:前言 写这个程序主要是用来理解生产者消费者模型,以及通过这个Demo来理解Redis的单线程取原子任务是怎么实现的和巩固一下并发相关的知识:这个虽然是个Demo,但是只要稍加改下Appender部 ...

  7. 基于阻塞队列的生产者消费者C#并发设计

    这是从上文的<<图文并茂的生产者消费者应用实例demo>>整理总结出来的,具体就不说了,直接给出代码,注释我已经加了,原来的code请看<<.Net中的并行编程-7 ...

  8. 生产者-消费者(wait-notify实现)

    使用wait/notify来实现生产者消费者时能够达到在线程阻塞的效果,这样就不会出现轮询,然后浪费cpu时间的目的.代码如下:1. 状态类,表示是否已经生产: package com.demo; p ...

  9. 基于Java 生产者消费者模式(详细分析)

    Java 生产者消费者模式详细分析 本文目录:1.等待.唤醒机制的原理2.Lock和Condition3.单生产者单消费者模式4.使用Lock和Condition实现单生产单消费模式5.多生产多消费模 ...

  10. Java 中 wait, notify 和 notifyAll的正确使用 – 以生产者消费者模型为例

    如何使用Wait 尽管关于wait和notify的概念很基础,它们也都是Object类的函数,但用它们来写代码却并不简单.如果你在面试中让应聘者来手写代码,用wait和notify解决生产者消费者问题 ...

随机推荐

  1. springboot上传图片

    springboot上传图片 新建一个springboot项目: 在java/main/com/ljx 创建一个controller.fileController类 内容如下: package com ...

  2. Linux内核编译中的各类错误示例

    1. do_gettimeofday()函数的使用 linux发行版:Ubuntu22.04 linux内核:5.15.0-52-generic 预编译内核:linux-6.0.1 添加在linux- ...

  3. html表白代码

    1.在电脑桌面右击鼠标选择新建--文本文档 2.并命名为:biaobai.txt 3.打开并且把一下代码复制并粘贴到biaobai.txt <!DOCTYPE html PUBLIC " ...

  4. (0807) import 与 include文件

    1)验证中filelist以及package https://blog.csdn.net/geter_CS/article/details/125689476 总结来说:规则是,要想使用某个文件内容, ...

  5. GIS空间分析和建模复习重点1

    1.对空间分析的理解(对概念的理解) 空间分析是为了解答地理空间问题而进行的数据分析与挖掘,是GIS的核心.研究对象为空间目标(具有空间特性(位置,分布,形态,空间关系(距离,方位,拓扑)),属性特性 ...

  6. go 的internal 目录

    Go 语言中的软件包推荐按照:组织名/项目名 的形式安排软件包的文件目录结构,一般「项目名」文件目录下还会按照功能.抽象约定.具体实现等维度再划分一些子目录.在 Go 语言里包的导入路径不同则被判定为 ...

  7. 【服务器数据恢复】raid5硬盘同步数据未完成时关机的数据恢复案例

    服务器数据恢复环境:某公司一台服务器组建了一组raid5磁盘阵列,作为共享存储池使用.该服务器存储数据库文件和普通文件. 服务器故障&检测:RAID5磁盘阵列的硬盘掉线导致服务器操作系统识别不 ...

  8. php不缓存直接输出

    ini_set('max_execution_time', 600); header('X-Accel-Buffering:no'); ob_end_flush(); $l_zhen = \M('zh ...

  9. DevExpress.XtraEditors.ComboBoxEdit 只能选择不能在里面 输入数据

    DevExpress.XtraEditors.ComboBoxEdit 只能选择不能在里面 输入数据 combboxEdit.propoties.textEditStyle=DisableTextEd ...

  10. 显示两行文字,超出显示省略号 css

    1 width: 100px; 2 background-color: pink; //一下内容为设置文字换行 及 只显示两行,超出显示省略号 3 text-overflow: -o-ellipsis ...