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. Dockerfile打包java应用

    #基础镜像 FROM openjdk:8-jre # 作者 MAINTAINER hg #挂载目录 VOLUME /home/hg #创建目录 RUN mkdir /home/hg #指定工作目录 W ...

  2. 自定义注解获取请求Header中的值

    前言 这几天开发一个项目,为了方便,前台将当前登陆人的ID和名称放在每个请求的Header中(这里不考虑安全性之类的),这样后台只要需要用到,就直接从Header中get出来就可以了. 后台实现方法 ...

  3. 年羹尧奏摺专集(下).PDF

    书本详情 年羹尧奏摺专集(下)作者: 国立故宫博物院出版社: 国立故宫博物院出版年: 1971页数: 1180装帧: 精装ISBN: 9788017310909

  4. vue学习之-----组件递归调用

    1.关键点 2.父组件 <template> <div> <div class="btn-title"> <el-button @clic ...

  5. HBase对表增查操作 API

    public class HBaseDML { //静态属性 public static Connection conn = HBaseConnection2.conn; //添加数据 public ...

  6. Ubuntu 复制粘贴快捷键

    打开命令行terminal ctrl+alt+t 复制粘贴 ctrl+shift+c ctrl+shift+v /usr/share/applications/ 这个文件夹可以创建桌面快捷方式 换源 ...

  7. Django操作redis

    一.环境安装 基本环境: Python环境:Python 3.8.16 Django环境:4.1 redis环境:参考搭建 https://www.cnblogs.com/yclh/p/1474233 ...

  8. DBeaver导入SQL脚本数据

    DBeaver导入SQL脚本数据 起因 Navicat Premium还原备份的导致数据库中文乱码 看Navicat Premium中看中文数据,是正常显示了,但是在IEDA查询和Web页面上显示,均 ...

  9. jekins 入门

    环境安装 gitlab 安装 使用 docker 安装 gitlab docker run -d --name gitlab --restart always --hostname gitlab.zd ...

  10. 学习-Vue3-绑定内联样式

    <template> <div> <!-- 绑定内联样式--绑定对象 --> <!-- <div :style="{color: active ...