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. Visusl Studio使用技巧

    一.快捷键的使用 1.使用Ctrl+K,Ctrl+E,可以清理代码,包括清理无用的using和对齐代码: 也可以使用快捷按钮实现该功能,如下图: 2.使用Ctrl+K,Ctrl+D,可以对齐代码 建议 ...

  2. geoserver的自动化部署

    年后接到一个任务,需求是这样的: 搭建一个geoserver服务器,将公司内部的mbtile数据(EPSG:3857)发布出去 服务的输出格式为MBTiles with vector tiles的矢量 ...

  3. jenkins 连接Windows

    1.Windows机器需要安装powershell Server 下载路径:https://www.nsoftware.com/powershell/server/ 点击startk开启该服务 2.配 ...

  4. java的排序问题

    普通排序 对于基础数据类型的排序,基本只是调用一下方法 如java的 1 Arrays.sort(nums); 那么如何自定义排序规则呢? 自定义排序规则: 假设现在有这么个问题,有n个学生, 每个学 ...

  5. J V M(二)双亲委派机制及native

    package java.lang;public class String {// 双亲委派机制: 安全// 应用程序加载器-扩展程序加载器-根加载器// 自底向上检查类是否被加载,自顶向下加载类// ...

  6. 手把手XTTS_V4迁移

    最近公司Oracle升级,考虑到停机时间等综合因数,最终选择了xtts数据迁移方案. 为此我整理了一份操作手册,方便以后查阅. 关于xtts的介绍可以参见这篇文章: <XTTS,又一个值得你重视 ...

  7. call bind的实现以及数组常用方法

    1.call 实现(apply 类似) Function.prototype.call= function(context){    context = context || window;     ...

  8. 好用的天气插件www.tianqi.com/plugin/

    1.好用的天气插件https://www.tianqi.com/plugin/ 根据访问IP地址可以判断当地的天气,生成天气预报信息放到页面上. 2.天气预报接口: import requests U ...

  9. gin web 2

    routers/router.go package routers import ( "github.com/gin-gonic/gin" "gin-blog/pkg/s ...

  10. Reactor 模式线程模型

    根据Reactor的数据量和处理资源池线程数量,可以分为3钟典型实现 单Reactor单线程 单Reactor 多线程 主从Reactor 多线程