开门见山,先总结一下
1.进程包含线程(包含关系)
2.线程比进程更轻量化,创建和销毁也比进程快(线程是轻量化进程)
3.进程中的多个线程之间共用一份内存/文件资源,而进程与进程之间则是独立调用内存/文件资源(资源调用)
4.进程是资源分配的基本单位,线程是调度执行的基本单位
一个进程中默认有一个线程,也可以有多个线程,因为进程的创建一般都要分配资源来进行调度,如果使用多进程,工作效率会低,比不上使用多线程的效率高,举一个例子
一个大工厂里有一套流水线机器,工厂=进程,流水线=线程,这时为了提高工厂的效率,有以下解决方案
方案1.多建一家工厂,并增加一套流水线,此时有两个工厂,两套流水线,效率是提高了,但是有缺点:创建工厂不仅要找场地,还需要建厂资金,加大了成本
文章图片
方案2.我们只需要在原来的厂子里多添加一套流水线,效率也同样会大大提高,这样节约了成本
文章图片
所以从上述例子就可以明确的知道了多线程比多进程的优势大
注:
1.多线程的创建不是无限的,线程的创建也消耗资源
2.多线程中会有线程不安全问题,其中线程的“抢占式执行”是万恶之源
3.多线程中,某个线程出现问题也会影响到其他线程
4.多线程的使用是“并发执行”,“并发执行”=并行+并发
【java|【JAVA】多线程篇章之进程与线程的区别与联系【面试热问题】】5.大数据计算用多线程效率会比串行执行效率高,但是当计算小数据时,由于线程的创建也需要时间,所以小数据计算串行执行效率会比并发执行效率高
推荐阅读
- Java|Java · 逻辑控制(顺序结构 · 分支结构 · 循环结构) · 输入输出语句
- #|Shiro学习与笔记
- 数据结构与算法|哈工大《机器学习》最小二乘法曲线拟合——实验一
- 队列|数字人技术在直播场景下的应用
- 编程语言|Node 之父斥责 Oracle(你们也不用,那请交出 JavaScript 商标!)
- 分布式|随笔(分布式锁的一点思想)
- 错误|记录(There is no getter for property named ‘null‘ in ‘class)
- SQL|MVCC在重复读和读已提交场景以及幻读的解决
- #|「SpringCloud」08 Config分布式配置中心