美文网首页
生产者消费者

生产者消费者

作者: xukunluren | 来源:发表于2018-06-25 18:13 被阅读0次

文章概要
生产者,消费者
如何使用信号量加锁
生产者,消费者
我对于生产者和消费者的理解是:需要有一个缓存池,生产者和消费者需要在不同的线程中去分别操作缓存池,这时候就特别容易产生并发问题。

下面讲解如何去写一个消费者和生产者

缓存池:其实需要一个可变的容器,所有在oc里面可变数组即可

//生产者消费者
   dispatch_semaphore_t semaphore = dispatch_semaphore_create(1);
   self.array = [[NSMutableArray alloc] init];
   dispatch_queue_t queue = dispatch_queue_create("cn.chutong.www", DISPATCH_QUEUE_CONCURRENT);
  //生产
   dispatch_async(queue, ^{
       while (YES) {
           int count = random()%10;
           sleep(1);
           dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
           [self.array addObject:[NSString stringWithFormat:@"%d",count]];
           dispatch_semaphore_signal(semaphore);
           NSLog(@"生产了%d",count);
       }
   });
   //消费
   dispatch_async(queue, ^{
       while (YES) {
       if (self.array.count>0) {
           NSLog(@"消费了%@",self.array.lastObject);
           dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
           [self.array removeLastObject];
           dispatch_semaphore_signal(semaphore);
       }
           
       }
   });

生产与消费成对出现:

image.png

相关文章

  • Dubbo起步

    目录 定义接口 生产者生产者依赖生产者实现 消费者消费者依赖消费者实现 初步印象 定义接口 生产者 生产者依赖 生...

  • 生产者消费者(一)

    生产者消费者模型: 生产者------> 缓存<-------- 消费者

  • 生产者和消费者问题

    生产者和消费者问题 问题简述 组成 系统中有一组生产者和消费者进程 生产者生产者将产品放入缓冲区 消费者消费者进程...

  • 9. python多进程之Queue实现生产者消费者模型

    一、概述 什么是生产者消费者模式生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此...

  • 生产者消费者

    什么是生产者和消费者 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。 生产者和消费者彼此之间不直...

  • java生产者消费者实现

    什么是生产者消费者模式 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直...

  • 生产者消费者模式-java原生、Disruptor实现方案

    生产者消费者模式介绍 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接...

  • Java实现生产者-消费者模型的几种方法

    什么是生产者消费者模式 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直...

  • 生产者和消费者模型

    生产者和消费者模型 1. 什么是生产者和消费者模型 生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者...

  • 生产者消费者

    生产者/消费者模式(阻塞队列) 生产者消费者模型的实现

网友评论

      本文标题:生产者消费者

      本文链接:https://www.haomeiwen.com/subject/zctuyftx.html