github.com/18023100339… (没适配- - ,用iPhone11模拟器打开最好)
- 课设题目:模拟仿真“生产者-消费者”问题的解决过程及方法。
- 使用C语言实现信号量(没用GCD信号量函数)(如果当时知道GCD自带了信号量就好了)
- 简要描述
- Producer方法中使用了while循环来保证一个“RunLoop”(不是NSRunLoop- -),确保方法会持续执行,同时每一遍循环中使其Sleep 3秒,即每三秒生产一个产品,同时while循环中还有三个while循环,分别负责:
- 通过信号量确保互斥增加产品编号
- 通过信号量来在缓存池满时或空闲时阻塞或唤醒线程
- 通过信号量来互斥使用缓存池
- Consumer方法中使用了while循环来保证一个“RunLoop”,确保方法会持续执行,同时每一遍循环中使其Sleep 3秒,即每三秒消费一个产品,同时while循环中还有三个while循环,分别负责:
- 通过信号量确保互斥增加产品编号
- 通过信号量来在缓存池满时或空闲时阻塞或唤醒线程
- 过信号量来互斥使用缓存池
- Producer和Consumer函数中还有一个判断bool变量是否结束循环,用于处理点击取消进程的事件。
- 点击添加生产者或消费者按钮后,通过iOS开发中的GCD,将Producer方法添加到异步线程中的全局队列中,使其与其他线程并发执行,每点击一次,添加一个,且会回到主线程进行UI的更新。
- 写的比较粗糙见谅嘿嘿:)
- Producer方法中使用了while循环来保证一个“RunLoop”(不是NSRunLoop- -),确保方法会持续执行,同时每一遍循环中使其Sleep 3秒,即每三秒生产一个产品,同时while循环中还有三个while循环,分别负责: