首先说下多线程出现的原因:

为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作(IO密集时,cpu利用率会下降)时或处理的情况需要花费大量的时间等等,比如:读写文件,视频图像的采集,处理,显示,保存等

多线程的好处:

0.提高CPU的利用率。从磁盘上读取文件的时候,大多数的CPU时间都会花费在等待磁盘来读取数据。在这个时候CPU是相当空闲的。在这个时候它可以干点别的事情。通过改变操作的顺序,CPU可以得到更好的利用。

1.防止阻塞主线程,提高吞吐量。使用线程可以把占据时间长的程序中的任务放到后台去处理

2.程序的运行效率可能会提高,提升程序的响应速度。

多线程的缺点:

1.如果有大量的线程,会影响性能,因为线程的创建、切换、销毁都比较消耗系统资源。

2.更多的线程需要更多的内存空间。

3.线程中止需要考虑对程序运行的影响.

4.通常块模型数据是在多个线程间共享的,需要防止线程安全问题、线程死锁情况的发生

多线程应用场景:

多线程最多的场景:web服务器本身;各种专用服务器(如游戏服务器);多线程的常见应用场景:

1、后台任务,例如:定时向大量(100w以上)的用户发送邮件;

2、异步处理,例如:发微博、记录日志等;

3、分布式计算

多线程:多线程优缺点、应用场景相关推荐

  1. php扩展多线程和多进程,PHP 多进程和多线程的优缺点

    PHP 多进程和多线程的优缺点 多进程 1.使用多进程, 子进程结束以后, 内核会负责回收资源 2.使用多进程, 子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程. 3.一个常 ...

  2. 多线程的实际应用场景

    业务场景 我们公司做的是加油业务,用户可以在app上通过当前位置和目标位置来查询地图路线以及路线途径的所有加油站,路线查询会调用高德地图提供的接口,途径油站则根据返回的路线信息进行查询,所以当用户输入 ...

  3. 多进程和多线程的区别是什么?多进程和多线程的优缺点分析

    多进程和多线程的主要区别是:线程是进程的子集(部分),一个进程可能由多个线程组成.多进程的数据是分开的.共享复杂,需要用IPC:但同步简单.多线程共享进程数据,共享简单:但同步复杂. 多进程,Wind ...

  4. 单线程和多线程的优缺点

    单线程和多线程的优缺点 多线程处理的优点 同步应用程序的开发比较容易,但由于需要在上一个任务完成后才能开始新的任务,所以其效率通常比多线程应用程序低.如果完成同步任务所用的时间比预计时间长,应用程序可 ...

  5. iOS开发之多线程--多线程简单介绍

    一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过& ...

  6. 【Python成长之路】python并发学习:多进程与多线程的用法及场景介绍

    刚开始学习Python 并发查询或者并发读写时,看到大神们说,多线程是python的鸡肋,要学就学多进程.好吧,我连多线程怎么写都不知道呢. 因此,就写了以下的示例代码.代码目的是将test.txt文 ...

  7. 单线程和多线程的优缺点(转)

    多线程处理的优点 同步应用程序的开发比较容易,但由于需要在上一个任务完成后才能开始新的任务,所以其效率通常比多线程应用程序低.如果完成同步任务所用的时间比预计时间长,应用程序可能会不响应.多线程处理可 ...

  8. 多线程处理同一批数据_多进程和多线程的优缺点

    来源:http://www.cnblogs.com/Yogurshine/p/3640206.html 在Linux下编程多用多进程编程少用多线程编程. IBM有个家伙做了个测试,发现切换线程cont ...

  9. 多进程和多线程的优缺点

    在Linux下编程多用多进程编程少用多线程编程. IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多.进出最快的锁(windows2k的 critical ...

  10. java多媒体龟兔赛跑_Java多线程——模拟龟兔赛跑的场景

    题目分析 1. 编写龟兔赛跑多线程程序,设赛跑长度为100米,先完成的一方胜利. 2. 兔子要休眠一段时间,但是跑步速度更快,乌龟不休眠,但是速度慢. 3. 编写兔子和乌龟类 RabbitAndTur ...

最新文章

  1. Android 手机卫士--自定义组合控件构件布局结构
  2. 如何移植行情软件的指标到千发股票自动交易软件?
  3. 使用Windows命令行启动服务
  4. new,delete和malloc,free以及allocatorT
  5. VisualStudioCode插件下载
  6. 元宇宙“性骚扰”现象频出,Meta推出“个人结界”能保护好女玩家吗?
  7. python提取字符串中数字_EXCEL数字在字符串中间怎么提取?
  8. 虚函数,虚基类 与纯虚函数 一
  9. 1000道Python题库系列分享21(11道编程题:内置函数专项练习)
  10. Java 线程池的复用原理
  11. Flutter之Widget 更新机制updateChild原理浅析
  12. 前端调用websocket的3种不同写法
  13. 安卓手机反应慢又卡怎么办_安卓手机出现卡顿反应慢的具体处理方法
  14. GPS之家论坛最新地图下载精选 汇集论坛精华 不断更新中(2013 3 30)
  15. Qt之QThread基本用法
  16. Win7 系统解压安装
  17. 【PythonPlanet】二手房产成交数据分析
  18. 计算机主机箱进行总结,工业级主机用机箱分类总结
  19. 《数据结构与算法分析》课程设计——贪吃蛇问题
  20. 中 华 百 家 姓 一 览

热门文章

  1. sqlserver 标准系统数据库
  2. Groovy简介和一点资源
  3. linux命令的学习
  4. 在绘制USB2.O设备接口差分线时,应注意以下几点要求:
  5. jsoncpp 库的使用方法
  6. OpenCV图像处理使用笔记(七)——卷积运算原理
  7. caffe学习(五):cifar-10数据集训练及测试(Ubuntu)
  8. Android开源框架——图表MPAndroidChart
  9. swift添加下拉刷新_React Native自定义下拉刷新组件
  10. 接口responsecode返回500_springboot+redis+Interceptor+annotation实现接口自动幂(989)