老男孩教育每日一题-2017年3月23日-请问多线程与多进程的区别,在什么时候用线程或进程更合适?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老男孩教育每日一题-2017年3月23日-请问多线程与多进程的区别,在什么时候用线程或进程更合适?相关的知识,希望对你有一定的参考价值。

解答:

进程:

优点:多进程可以同时利用多个CPU,能够同时进行多个操作。

缺点:耗费资源(创建一个进程重新开辟内存空间)。

进程不是越多越好,一般进程个数等于cpu个数。

 

线程:

优点:共享内存,尤其是进行IO操作(网络、磁盘)的时候(IO操作很少用cpu),可以使用多线程执行并发操作。

缺点:抢占资源。

线程也不是越多越好,具体案例具体分析,切换线程关系到请求上下文切换耗时。

计算机中执行任务的最小单元:线程。

 

IO密集型(不用cpu):多线程

计算密集型(用cpu):多进程

 

  • 网友精品回答:

耶稣的道路2017/03/23 10:50:40

多线程和多进程是两个截然不同的概念。进程是内核分配给一个应用的相对独立的地址空间,有着自己的堆栈地址,当然是虚拟的,这样就保护了内核,使内核和应用隔离,个个具体的应用之间隔离,当然他们之间是可以通信的,这取决于操作系统。

线程是我们程序员最关注的,也就是我们在具体应用中的功能实现。分为主线程和子线程,在android开发中我们称主线程为UI线程,在JavaEEWindows开发中就是main函数等等,既然这样那么什么操作放在主线程中,什么操作放在子线程中,大致是这样,费时的操作和消耗资源也就是占内存的操作放在子线程中,更新UI之类的放在主线程中,他们之间通过消息传递实现。

像查询数据库、联网上传文件啊,断点续传和下载大数据文件啊等等操作都应该放在子线程中。

多线程的应用虽然提高了CPU的利用率,却也带来安全问题。熊掌和鱼不可兼得,如何处理效率和安全的问题,真的是考验一个程序员水平的现实问题。


本文出自 “李导的博客” 博客,请务必保留此出处http://lidao.blog.51cto.com/3388056/1914576

以上是关于老男孩教育每日一题-2017年3月23日-请问多线程与多进程的区别,在什么时候用线程或进程更合适?的主要内容,如果未能解决你的问题,请参考以下文章

老男孩教育每日一题-2017年3月31日-awk数组统计

老男孩教育每日一题-2017年5月17日-使用三剑客进行变化格式

老男孩教育每日一题-2017年4月13日-当你删除的多个文件中包含空格或其他特殊字符,请问如何做

老男孩教育每日一题-2017年05月23日-一个100M的分区,写入0.5K的,或写入1M的,可以写多少?

老男孩教育每日一题-2017年3月31日-awk数组统计

老男孩教育每日一题-2017年3月28日-awk累计相加