老男孩教育每日一题-2017年3月23日-请问多线程与多进程的区别,在什么时候用线程或进程更合适?
2017-04-10 16:20
316 查看
解答:
进程:
优点:多进程可以同时利用多个CPU,能够同时进行多个操作。
缺点:耗费资源(创建一个进程重新开辟内存空间)。
进程不是越多越好,一般进程个数等于cpu个数。
线程:
优点:共享内存,尤其是进行IO操作(网络、磁盘)的时候(IO操作很少用cpu),可以使用多线程执行并发操作。
缺点:抢占资源。
线程也不是越多越好,具体案例具体分析,切换线程关系到请求上下文切换耗时。
计算机中执行任务的最小单元:线程。
IO密集型(不用cpu):多线程
计算密集型(用cpu):多进程
网友精品回答:
耶稣的道路2017/03/23 10:50:40
多线程和多进程是两个截然不同的概念。进程是内核分配给一个应用的相对独立的地址空间,有着自己的堆栈地址,当然是虚拟的,这样就保护了内核,使内核和应用隔离,个个具体的应用之间隔离,当然他们之间是可以通信的,这取决于操作系统。
线程是我们程序员最关注的,也就是我们在具体应用中的功能实现。分为主线程和子线程,在Android开发中我们称主线程为UI线程,在JavaEE和Windows开发中就是main函数等等,既然这样那么什么操作放在主线程中,什么操作放在子线程中,大致是这样,费时的操作和消耗资源也就是占内存的操作放在子线程中,更新UI之类的放在主线程中,他们之间通过消息传递实现。
像查询数据库、联网上传文件啊,断点续传和下载大数据文件啊等等操作都应该放在子线程中。
多线程的应用虽然提高了CPU的利用率,却也带来安全问题。熊掌和鱼不可兼得,如何处理效率和安全的问题,真的是考验一个程序员水平的现实问题。
进程:
优点:多进程可以同时利用多个CPU,能够同时进行多个操作。
缺点:耗费资源(创建一个进程重新开辟内存空间)。
进程不是越多越好,一般进程个数等于cpu个数。
线程:
优点:共享内存,尤其是进行IO操作(网络、磁盘)的时候(IO操作很少用cpu),可以使用多线程执行并发操作。
缺点:抢占资源。
线程也不是越多越好,具体案例具体分析,切换线程关系到请求上下文切换耗时。
计算机中执行任务的最小单元:线程。
IO密集型(不用cpu):多线程
计算密集型(用cpu):多进程
网友精品回答:
耶稣的道路2017/03/23 10:50:40
多线程和多进程是两个截然不同的概念。进程是内核分配给一个应用的相对独立的地址空间,有着自己的堆栈地址,当然是虚拟的,这样就保护了内核,使内核和应用隔离,个个具体的应用之间隔离,当然他们之间是可以通信的,这取决于操作系统。
线程是我们程序员最关注的,也就是我们在具体应用中的功能实现。分为主线程和子线程,在Android开发中我们称主线程为UI线程,在JavaEE和Windows开发中就是main函数等等,既然这样那么什么操作放在主线程中,什么操作放在子线程中,大致是这样,费时的操作和消耗资源也就是占内存的操作放在子线程中,更新UI之类的放在主线程中,他们之间通过消息传递实现。
像查询数据库、联网上传文件啊,断点续传和下载大数据文件啊等等操作都应该放在子线程中。
多线程的应用虽然提高了CPU的利用率,却也带来安全问题。熊掌和鱼不可兼得,如何处理效率和安全的问题,真的是考验一个程序员水平的现实问题。
相关文章推荐
- 黑马程序员01--线程与进程的区别以及为什么使用多线程?
- 线程,进程.程序,多线程区别
- 多线程:线程和进程的区别与联系
- 老男孩教育每日一题-2017年5月19日-使用find命令的时候 |xargs(管道xargs)与-exec有什么区别?
- Java 多线程编程之一 进程与线程,并发和并行的区别
- 线程与进程的区别以及对多线程并发的理解
- 老男孩教育每日一题-2017年3月30日-请说明软链接与硬链接区别
- 线程与进程的区别以及对多线程并发的理解
- 老男孩教育每日一题-2017年5月16日-说说{}与[]这两个符号有什么区别?
- 多线程的那些事儿(2)-- 进程与线程的区别与联系
- Java 多线程编程之一 进程与线程,并发和并行的区别:吃馒头的比喻
- 多线程 学习笔记<4> 进程与线程的区别联系
- 老男孩教育每日一题-2017年3月21日:查找占用内存的前3名进程
- 进程和线程有什么区别?什么是多线程?
- 什么是线程?它与进程的区别?为什么要使用多线程?
- 基础知识:线程,进程。多进程,多线程。并发,并行的区别
- 老男孩教育每日一题-2017-04-14-说一下单引号、双引号和不加引号区别
- 老男孩教育每日一题-2017年3月20日:使用rsync守护进程模式,经常会出现的异常情况说明,并说明应该如何解决
- Java多线程(0)——线程与进程的区别