本文就高并发软件设计中可以考虑使用的一些方法做如下总结:

1)多线程有利于提高CPU占用率,因为软件本身的线程越多,在和系统上其他线程争夺CPU资源时就能分配到更多执行资源,同时也能提高业务处理的并发性。

2)非阻塞IO能够在IO操作条件不成熟时不阻塞在IO调用处,返回继续其他代码的执行,过一阵再进行IO尝试。异步IO能在IO操作执行时不阻塞在IO调用处,返回继续其他代码的执行,等IO操作结束后通过信号等机制拿到通知事件,然后再继续IO操作后续执行。

3)actor模式通过在actor间传送消息来进行同步和事件驱动,一方面使得各个actor能够最大限度的并发执行,避免了阻塞等待。另一方面降低了actor间的耦合,在actor本身业务层避免了锁的使用,从而避免了死锁、临界区访问等问题的发生。

4)协程通过把一个线程划分成多个任务来串行执行,一方面以写同步代码容易度来达到异步代码的高效率。另一方面通常一个任务进行异步IO时要让出这个线程的执行权,进行线程切换,如果采用协程方式,在这个时候可就以把线程的执行权让给线程内的其他协程,目的也是尽量让线程在时间片用完时再切换,减少切换次数。

转载于:https://www.cnblogs.com/james1207/p/3303974.html

高并发软件设计的几种方式相关推荐

  1. 从bitmap到布隆过滤器,再到高并发缓存设计策略

    点击关注公众号,Java干货及时送达 作者:that_is_cool blog.csdn.net/that_is_cool/article/details/91346356 前言:怎么能把风马牛不相及 ...

  2. 华为19级专家10年心血终成百页负载均衡高并发网关设计实战文档

    负载均衡(LoadBalance)的字面意思是将工作负载分担到多个工作单元上进行执行,它建立在现有网络结构之上,是构建分布式服务.大型网络应用的关键组件. 近十几年来,负载均衡技术层出不穷,令人眼花缭 ...

  3. 华为19级大佬10年心血终成百页负载均衡高并发网关设计实战文档

    说在前面的话 负载均衡(LoadBalance)的字面意思是将工作负载分担到多个工作单元上进行执行,它建立在现有网络结构之上,是构建分布式服务.大型网络应用的关键组件. 近十几年来,负载均衡技术层出不 ...

  4. Java高并发,如何解决,什么方式解决

     对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一 ...

  5. 数据库学习:高并发数据库设计

    数据库学习:高并发数据库设计 随着乐视硬件抢购的不断升级,乐视集团支付面临的请求压力百倍乃至千倍的暴增.作为商品购买的最后一环,保证用户快速稳定的完成支付尤为重要.所以在15年11月,我们对整个支付系 ...

  6. MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

    1. 概述 MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC).器件带有冷端补偿检测和修正.数字控制器.SPI兼容接口,以及相关的控制逻辑,在温度控制器.过程控制或监测系统中设 ...

  7. 高并发软件系统设计原理与实践-高岩峰-专题视频课程

    高并发软件系统设计原理与实践-604人已学习 课程介绍         本课程讲解软件性能设计的目标.方法和常用的解决方案以及性能优化的方法.通过学习本门课程,大家能够掌握理解性能指标,能够知道存在哪 ...

  8. 高并发软件系统设计原理与实践——前言-高岩峰-专题视频课程

    高并发软件系统设计原理与实践--前言-1465人已学习 课程介绍         本课程讲解如何设计高性能的软件,如何定位解决性能问题.本课程主要包含如下4部分内容: 1.性能指标和性能设计的常识. ...

  9. 【Linux入门到精通系列讲解】Centos 7软件安装的三种方式

    centos 软件安装的三种方式 Linux下面安装软件的常见方法: 一.yum 替你下载软件 替你安装 替你解决依赖关系 点外卖 缺少的东西 外卖解决 1.方便 简单 2.没有办法深入修改 yum ...

最新文章

  1. anaconda安装scrapy失败的解决方法(2020.7.7)
  2. css3替代图片的尖角圆角效果
  3. python 删除字符串中的所有相邻的重复项
  4. iwrite提交不了作业_在云端,我们把花样作业pick起来!
  5. 表示数值的字符串(有限状态自动机与搜索)
  6. 萌娃六一对程序员老爸说:再不陪我玩我就长大了
  7. SQL Server里查看当前连接的在线用户数
  8. Android开发技术周报 Issue#17
  9. element-ui表单验证
  10. asyncio 文件io高并发_请问这个 asyncio 异步访问页面怎么写可以更加快?
  11. Echarts中使用china.js
  12. java 字符串常量_Java字符常量详解
  13. 下载chrome插件,离线安装chrome插件
  14. 《剑指offter》
  15. 开启usb调试的手机如何去除屏幕锁密码
  16. modprobe XXX not found 解决与Depmod命令; insmod/modprobe的区别
  17. 携职教育:2022年初级会计考试证书领取流程及所需材料
  18. vue实现绑定微信登录全过程
  19. 单元测试系列之九:Sonar 常用代码规则整理(一)
  20. 日语二级语法汇总(part4/16)

热门文章

  1. 基于Visual C++2010与windows SDK fo windows7开发Windows 7的多点触摸特性应用程序(1)
  2. 幂运算 数组_Super Pow:如何高效进行模幂运算
  3. buffersize越大越好吗_手机运行内存真的越大越好吗?看完长知识了
  4. android movie studio 下载,Movie Studio+ Video Editor
  5. ipad连接电脑_Ipad已经停用需要连接iTunes的一种解决方案,
  6. rk3399 采集摄像头数据_[Camera]摄像头镜像
  7. ubuntu 14.04 mysql 5.7_ubuntu14.04 升级mysql到5.7版本
  8. matlab数值计算好处,第四章 MATLAB 的数值计算功能(一)
  9. 时间同步软件 windows_电脑上好用的便利贴软件,PC端便签软件
  10. mysql节假日表_节假日常见的数据库磁盘空间处理小结