const (// Size 库存Size = 10// openTime 抢购时长openTime = 5 * time.Second
)func main() {// 商品commodity := make(chan string, Size)// 上下文管理器ctx, cancelFunc := context.WithCancel(context.Background())for i := 1; i <= Size*10000; i++ {// 模拟用户抢购go func(name string, ch chan<- string, cancelFunc context.CancelFunc) {// 抢购倒计时for i := 1; i <= 5; i++ {time.Sleep(1 * time.Second)}// 假设:5秒内没抢购到,则已抢购结束timer := time.NewTimer(openTime)select {case ch <- name: // 如果ch已满,则无法写入log.Println(name, "抢购成功")case <-timer.C:log.Println(name, "抢购失败")cancelFunc() // 结束抢购避免超卖}defer func() {if r := recover(); r != nil {// 对异常默认不处理log.Println(r)}}()}(fmt.Sprintf("user-%d", i), commodity, cancelFunc)}// 收到抢购结束标志<-ctx.Done()// 等待用结束抢购time.Sleep(openTime)// 关闭抢购close(commodity)log.Println("抢购成功的用户如下:")for user := range commodity {log.Println(user)}
}

Golang模拟电商并发场景-抢购商品相关推荐

  1. Web系统大规模并发——电商秒杀与抢购

    Web系统大规模并发--电商秒杀与抢购 allowtransparency="true" frameborder="0" scrolling="no& ...

  2. 徐汉彬:Web系统大规模并发——电商秒杀与抢购

    摘要:电商的秒杀和抢购,从技术的角度来说,会对Web系统产生巨大的考验.本期<问底>,徐汉彬将带大家关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原 ...

  3. Web系统大规模并发—电商秒杀与抢购

    电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要.这次我们 ...

  4. 5w每秒的高并发优化:电商秒杀与抢购

    一.大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战.如果Web系统不做针对性的优化,会轻而易举地陷入到异常状态.我们现在 ...

  5. 网站大规模并发处理方案:电商秒杀与抢购

    电商秒杀与抢购架构学习技术学习 https://www.itkc8.com 目录 一.大规模并发带来的挑战 1. 请求接口的合理设计 2. 高并发的挑战:一定要"快" 3. 重启与 ...

  6. 电商项目实战之商品秒杀

    电商项目实战之商品秒杀 定时任务 corn表达式 实现方式 基于注解 基于接口 实战 秒杀系统 秒杀系统关注问题 秒杀架构设计 商品上架 获取当前秒杀商品 获取当前商品的秒杀信息 秒杀最终处理 参考链 ...

  7. 电商产品设计:商品推荐系统

    在电商网站里进行商品推荐,可以提高整个网站商品销售的有效转化率,增加商品销量.通过用户已经浏览.收藏.购买的记录,更精准的理解用户需求,对用户进行聚类.打标签,推荐用户感兴趣的商品,帮助用户快速找到需 ...

  8. 微信小程序:“去中心化”的社交电商,电商正转向以商品为核心

    微信小程序的平均日活用户已经超过5亿人,小程序已经全面融入到我们的生活.工作.娱乐等各个场景中.而通过小程序,中国的电子商务也从"中心化"的平台电商逐渐转变为"去中心化& ...

  9. 电商后台设计:商品维护

    编辑导语:商品在整个电商系统中处于核心位置,因此商品维护对于电商后台设计的重要性不言而喻,本文作者以此为出发点,和我们聊一聊在电商后台设计中关于商品维护的那些事. 对于电商系统来说,商品模块的维护可以 ...

最新文章

  1. javascript推荐书籍
  2. 杂志大片:摩登都市 爱之城堡
  3. MFC中Mat实现打开关闭本地摄像头
  4. ie浏览器怎么打开html,Win10系统IE浏览器不能打开HTML怎么办
  5. 【MFC】在工具栏中添加编辑框
  6. Streaming HTTP responses【翻译】
  7. 为什么不用php做系统吗,IT行业:为什么大部分人都不认可php语言呢?
  8. .net中实现文件下载的几种方法(收藏)
  9. 加/减/乘/除 下的取余
  10. PHPExcel 表格 行 合并
  11. android定位!每个程序员都必须掌握的8种数据结构!完整版开放下载
  12. 300字总结计算机flash,Flash学习心得体会范文
  13. 群发邮件服务器软件,邮件服务器软件:邮件群发是否已死?
  14. 征服,才是技术人的本能
  15. 数码相机闪光灯存储卡挑选篇
  16. 任务教学法在计算机教学,“任务驱动”教学法在计算机基础教学中的应用
  17. IOS Swift语言开发 tableView的重用以及自cell的自适应高度
  18. 计算机应用素描色彩,美术统考素描、色彩、速写考场技巧全攻略
  19. Tiny6410学习移植usb无线网卡(一)
  20. 3行代码用python实现图片格式转换

热门文章

  1. 让你意想不到的加密方式——猪圈密码
  2. 伏达NU1680:单芯片解决TWS耳机仓无线充电方案
  3. pako java_java压缩字符串,前端接收pako解压
  4. 单容水箱液位pid控制实验报告_实验二(单容水箱液位PID控制实验)实验报告电子版2014...
  5. index=False与index=True的含义
  6. nginx设置自己的404模板页面
  7. plt.text()用法
  8. Modbus通讯协议详细解释
  9. cip协议服务器,CIP(通用工业协议)_百度百科
  10. 【ROS实操1编码实现乌龟运动控制,让小乌龟做圆周运动。】