并发


01.并发和并行的区别:

  • 并发(concurrency),同时做某些事情,但是强调,一个时段内有事情要处理。
  • 并行(parallel),同时做某些事情,可以互相不干扰的同一时刻做几件事情。
    • 并行是并发的一个子集,只有当每个进程能独立占用cpu资源时,并行才真正发生。


02.并发的解决思路:

  • 队列,用于解决资源争用的问题。
    • 队列其实就是一个缓冲区,用于请求的先进先出排列。
  • 争抢,开放指定数量的资源,当资源被抢占之后加载排它锁。
    • 资源争抢的方式并不推荐,为造成用户长时间不能获取资源。
  • 预处理,将热点数据预先加载到内存中。
    • 热点数据能命中绝大多数用户的请求,也是一种缓存思想。
    • 预处理是解决并发的重要方法。
  • 并行,同时创建多个进程或线程提供服务,解决并发问题。
    • 如果多线程运行在单颗cpu上,则不能称之为并行。
  • 提速,提高单个应用的处理能力,称之为水平扩展。
  • 消息中间件,使用系统外的第三方队列,用于系统之间的解耦和缓冲。
    • 常用的消息中间件有RabbitMQ,ActiveMQ及RocketMQ等。
文档更新时间: 2021-10-04 00:19   作者:闻骏