生产者消费者demo
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的更多相关文章
- java kafka 生产者消费者demo
一.修改kafka server.porperties的ip是你本机的ip listeners=PLAINTEXT://192.168.111.130:9092 二.生产者的例子 import o ...
- 图文并茂的生产者消费者应用实例demo
前面的几篇文章<<.NET 中的阻塞队列BlockingCollection的正确打开方式>><<项目开发中应用如何并发处理的一二事>>从代码以及理论角 ...
- Scala调用Kafka的生产者和消费者Demo,以及一些配置参数整理
kafka简介 Kafka是apache开源的一款用Scala编写的消息队列中间件,具有高吞吐量,低延时等特性. Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受 ...
- Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)
目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...
- Java 生产者消费者模式详细分析
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 利用生产者消费者模型和MQ模型写一个自己的日志系统-并发设计里一定会用到的手段
一:前言 写这个程序主要是用来理解生产者消费者模型,以及通过这个Demo来理解Redis的单线程取原子任务是怎么实现的和巩固一下并发相关的知识:这个虽然是个Demo,但是只要稍加改下Appender部 ...
- 基于阻塞队列的生产者消费者C#并发设计
这是从上文的<<图文并茂的生产者消费者应用实例demo>>整理总结出来的,具体就不说了,直接给出代码,注释我已经加了,原来的code请看<<.Net中的并行编程-7 ...
- 生产者-消费者(wait-notify实现)
使用wait/notify来实现生产者消费者时能够达到在线程阻塞的效果,这样就不会出现轮询,然后浪费cpu时间的目的.代码如下:1. 状态类,表示是否已经生产: package com.demo; p ...
- 基于Java 生产者消费者模式(详细分析)
Java 生产者消费者模式详细分析 本文目录:1.等待.唤醒机制的原理2.Lock和Condition3.单生产者单消费者模式4.使用Lock和Condition实现单生产单消费模式5.多生产多消费模 ...
- Java 中 wait, notify 和 notifyAll的正确使用 – 以生产者消费者模型为例
如何使用Wait 尽管关于wait和notify的概念很基础,它们也都是Object类的函数,但用它们来写代码却并不简单.如果你在面试中让应聘者来手写代码,用wait和notify解决生产者消费者问题 ...
随机推荐
- 2023-03-01 Error: Invalid hook call.Hooks can only be called inside of the body of a function component.
问题描述:rn项目使用钩子useState,详细报错如下: Error: Invalid hook call. Hooks can only be called inside of the body ...
- PowerShell Regex
PowerShell默认按每一行遍历去匹配模式 比如"aaa`nbbb"用"a.*b"是匹配不到的 需要用"(?s)a.*b"来匹配 1. ...
- Jupyter notebook upload无法加载本地ipynb文件
可能是本地浏览器(IE)问题,修改默认浏览器.
- GIS空间分析和建模复习重点1
1.对空间分析的理解(对概念的理解) 空间分析是为了解答地理空间问题而进行的数据分析与挖掘,是GIS的核心.研究对象为空间目标(具有空间特性(位置,分布,形态,空间关系(距离,方位,拓扑)),属性特性 ...
- git 问题解决
1. fatal: the remote end hung up unexpectedly git config --global http.postBuffer 104857600 其他方案: gi ...
- Git客户端部署使用-生成ssh密钥2
1. 设置用户名 其中双引号中的 XXX 是用户名,记得替换成自己的用户名,需要注意的是这里的用户名是git服务器所使用的名称,一般公司用的都是员工名称的全拼. # 在git窗口中输入命令行: git ...
- drop table后,约束会被删除吗?
create table test1(id number); insert into test1 values(11);insert into test1 values(22);insert into ...
- insert image in mail instead of attachment
https://www.extendoffice.com/documents/outlook/3810-outlook-insert-images-inline.html Go ahead to cl ...
- c++游戏编程(1)开发环境与工具函数
c++游戏编程(1)开发环境与工具函数 文章目录 c++游戏编程(1)开发环境与工具函数 前言 1.开发工具 2.工具函数 2.1 windows.h 2.1.1 _mkdir() 2.1.2 _rm ...
- [Jquery]如何绑定相同id的所有元素?
Jquery中相同的id不能用$()获得,只能获得第一个匹配的元素. 原因:id不可重复 解决方案: 方案1: 通过 $("input[id='xxxx']"); 可以选择多个相同 ...