多线程与多进程之间的概念与区别分享

2019/10/12 11:29:52 作者:互联网发布企业:运城达内科技有限公司[打印]

多线程和多进程对于刚刚学习软件编程开发的程序员来说还是非常容易混淆的一个概念,下面我们就通过案例分析来了解一下这两者之间的区别都有哪些。

什么是多进程

在计算中,进程是正在执行的计算机程序的一个实例。或者简单地说,运行程序也称为进程。

多进程意味着“在单个计算机系统中具有两个或更多个CPU。

例如,如果计算机系统具有双核心,并且同时运行(执行)两个进程(同时),则可以通过将每个进程分配给系统的每个核心来实现。因此,这两个过程可以同时执行。换句话说,多进程可以定义为多个进程可以同时执行,而不是一个接一个地执行。在多进程中,每个进程都有不同的地址空间和资源。

什么是多线程

进程是线程的集合。线程是一个轻量级的过程。线程执行是执行的小处理单元。

每个进程包含许多线程,所有线程共享相同的内存空间。

同一个进程中可以存在多个线程,共享内存等资源,而不同的进程不共享这些资源。

在单个处理器上,多线程通常通过时分多路复用(如多任务处理):处理器在不同的线程之间切换。

这种上下文切换通常发生得足够频繁,以至于用户感觉到线程或任务同时运行。

线程与进程有什么不同

线程不同于传统的多任务操作系统进程:

进程通常是独立的,而线程作为进程的子集存在

进程比线程携带更多的状态信息,而进程内的多个线程共享进程状态以及内存和其他资源

进程具有独立的地址空间,而线程共享其地址空间

进程只能通过系统提供的进程间通信机制进行交互

同一进程中的线程之间的上下文切换通常比进程之间的上下文切换更快

多线程调度

操作系统通过以下两种方式之一来调度线程:

先发制人的多线程一般被认为是优越的方法,因为它允许操作系统确定何时发生上下文切换。抢占式多线程的缺点是系统可能会在不恰当的时间进行上下文切换,引起锁车队,优先级反转或其他负面影响,这可能会通过协作式多线程来避免。

另一方面,合作多线程依赖于线程自己放弃控制,一旦他们在停止点。如果线程正在等待资源变为可用状态,则会产生问题。

线程的保护机制

一个线程将共享父进程的所有全局变量和文件描述符,允许程序员在一个进程内轻松地分离多个任务。

它共享一切,除了每个线程将有自己的程序计数器,堆栈和寄存器。由于每个线程都有自己的堆栈,所以线程之间不会共享局部变量。

【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。


关键字:运城达内,多线程,IT培训
免责声明:以上所展示的信息由网友自行发布,内容的真实性、准确性和合法性由发布者负责。行业信息网对此不承担任何保证责任。任何单位或个人如对以上内容有权利主张(包括但不限于侵犯著作权、商业信誉等),请与我们联系并出示相关证据,我们将按国家相关法规即时移除。

其他新闻

关于我们 | 服务条款 | 网站指南 | 免责声明 | 友情链接 | 给我们留言
红盾
COPYRIGHT @ 2001-2017 CNlinfo.net ALL RIGHTS RESERVED
深圳市信息行业协会商务网站 运营商:深圳市兴讯信息技术有限公司 粤ICP备:05039908
营业执照