写的作业,关于生产者消费者

本文介绍了一种经典的生产者-消费者模式实现方法,通过Java代码展示了如何利用缓冲区进行资源的生产和消费过程。该模式有助于理解并发编程中的资源同步问题。
java 代码
  1. Class prodct{}//为产品实体,内容省略    
  2. Interface People{   
  3.   
  4.      Void product();   
  5.   
  6.      Void consume();   
  7.   
  8. }   
  9.   
  10. //生产者    
  11.   
  12. Class Producer implement People{   
  13.   
  14. Private int amount=10;//默认一次生产10个产品   
  15.   
  16. Void product(Buffer buffer){   
  17.   
  18.    product(this.amount,buffer);   
  19.   
  20.  }   
  21.   
  22.  //用户可以自行设置一次生产产品的数量   
  23.   
  24. Void product( int AutherAmount, Buffer buffer){   
  25.   
  26.    for(var i=1;i<= AutherAmount;i++){   
  27.   
  28.    createProduct(buffer);   
  29.   
  30. }   
  31.   
  32.  }   
  33.   
  34. Void createProduct(Buffer buffer){   
  35.   
  36.    //得到新产品,并向Buffer中投放   
  37.   
  38.    buffer.P( );   
  39.   
  40.    buffer.object[buffer.getFull]=new Product();   
  41.   
  42.    buffer.V( );   
  43.   
  44. }   
  45.   
  46. }   
  47.   
  48. //消费者   
  49.   
  50. Class Consumer implement People{   
  51.   
  52. Private int amount=10;   
  53.   
  54. Public Product[] products;   
  55.   
  56. consume(Buffer buffer){   
  57.   
  58.    consume(this.amount,buffer);   
  59.   
  60.  }   
  61.   
  62. consume(int AutherAmount, Buffer buffer){   
  63.   
  64.    for(var i=1;i<= AutherAmount;i++){   
  65.   
  66.    getProduct(budder);   
  67.   
  68. }   
  69.   
  70.     
  71.   
  72.  }   
  73.   
  74. Void getProduct(Buffer buffer){   
  75.   
  76.    //Buffer中得到新产品   
  77.   
  78.    buffer.V( );   
  79.   
  80.    Producs[buffer.getEmpty]=buffer.object[buffer.getFull];   
  81.   
  82.    buffer.P( );   
  83.   
  84. }   
  85.   
  86. }   
  87.   
  88. Interface PandV{   
  89.   
  90. Void P( );   
  91.   
  92. Void V( );   
  93.   
  94. }   
  95.   
  96. //缓冲区   
  97.   
  98. Class Buffer implement PandV{   
  99.   
  100.      Public Object[] object=new object[];   
  101.   
  102.      Private int full;   
  103.   
  104.      Private int empty;   
  105.   
  106.      Public Int getFull(){return this.full;}   
  107.   
  108. Public Int getEmpty(){return this.empty;}   
  109.   
  110.      Void Buffer(){   
  111.   
  112.          Buffer(10);//默认缓冲区大小为10   
  113.   
  114. }   
  115.   
  116.      Void Buffer(int size){   
  117.   
  118.     This.object.length=size;   
  119.   
  120.     This.full=0;//full初始为0   
  121.   
  122.     This.empty= size;//empty初始为buffer的大小   
  123.   
  124. }   
  125.   
  126. Viod P( ){   
  127.   
  128.     If(full>0){full--;}       
  129.   
  130. }   
  131.   
  132. Viod V( ){   
  133.   
  134.     If(empty<= object.length){ empty++; }   
  135.   
  136. }   
  137.   
  138. }   
  139.   
  140. Class done{   
  141.   
  142. Public static void main(String[] args){   
  143.   
  144.      Public People people;   
  145.   
  146.      Buffer bf=new Buffer();   
  147.   
  148.      people=new Producer();   
  149.   
  150.      people.produce(bf);   
  151.   
  152. people=new Consumer();   
  153.   
  154. people.consume(bf);   
  155.   
  156. }   
  157.   
  158. }   
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值