首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

进程和线程,你真的了解吗?一文帮你搞清楚,拿走不谢

最近有朋友私信问我一个问题:进程和线程有啥区别,在Python中如何进行并发编程?对于这个问题,我想先回答第一句话,就是进程和线程的区别,对于Python的并发编程呢,咱们在下次和大家一起探讨哦。

好啦,那今天咱们就来聊聊进程和线程的关系吧!

首先呢,我们要知道哦,几乎所有的操作系统都支持同时运行多个任务哦,一个任务呢通常来说就是一个程序啦,每个运行中的程序就是一个进程哦!这样一说,大家是不是对于进程有个直观的概念了呢!

然后呢,当一个程序运行时,内部还可能包含多个顺序执行流哦,每一个顺序执行流就是一个线程哦,这样大家是不是对线程也有个直观的概念了呢!

好啦,那今天咱们就把进程和线程的关系讲完了......开玩笑啦,当然不会只是这么简单的区别哦!

下面咱们就来细说一下吧!

对于现在的操作系统来说,都是支持线程的所有运行中的人物通常对应一个进程,也就是咱们通常所说的Process,当一个程序进入内存运行时,就变成了一个进程。下面这句话大家要记住哦:进程是处于运行过程中的程序哦,而且具有一定的独立功能哦,它是系统进行资源分配和调用的一个独立单位哦

比如我们最常用和最熟悉的Windows操作系统,是支持多进程并发执行的,而且现在的操作系统尤其是Linux几乎都支持同时执行多个任务哦,比如现在我可以一边和大家聊天写文字,我还一边听着歌曲哦,当然还可以进行其他操作哦,这就是多进行并发运行哦!

好啦,上面这都是大家表面所看到的,咱们再深入电脑CPU内部看看运作机理吧,其实呢,对于一个CPU来说哦,在某一个时刻只能运行一个程序哦,也就是只能运行一个进程,如果要进行多进程运行,CPU就会不断在这些进程之间进行快速切换和轮换哦,为什么说是快速呢,因为我们实际体验是感觉不出来的,所以就感觉是并行运行哦!这就是因为CPU的主频实在是太快了的原因哦!

其实,对于多线程呢,它是扩展了多进程的概念哦,因为多线程可使得同一个进程可以同时并发处理多个任务哦!其实说白了,线程也可以成为轻量级的进程,线程就是进程的执行单元哦!

线程呢,其实是进程的组成部分哦,一个进程可以拥有多个线程哦,而一个线程呢则必须由一个父进程哦,对于线程来说,它是可以拥有它自己的堆栈啦、计数器啦和自己的局部变量啦等等,但它不拥有自己的资源哦,因为它必须与父进程的其他线程共享该进程所拥有的全部资源哦!正是因为多个线程共享父进程中的全部资源,所以咱们编程才能更加方便哦,但是凡事都有两面,为我们编程带来方便的同时,我们也要注意在编程时要确保线程不会妨碍同一个进程中的其他线程哦,不然的话,程序和线程就会乱啦!

而对于线程来说呢,线程是可以完成一定的任务的哦,当然啦也可以与其他线程共享父进程中的共享变量和部分环境哦,相互之间协同完成进程中要完成的任务哦!咱们要深入说一下线程,线程其实也是独立的哦,它其实是不知道进程中是否还有木有其他线程存在的,而对于线程来说,它的运行时抢占式的哦,那有朋友可能会问了,什么是抢占式的呢?就是当前运行的线程在任何时候都有可能被挂起哦,来运行另外的线程哦,这就涉及到优先级问题啦,这次咱们就不扩展了哦,在下次一起探讨Python并发编程时再细聊哦!

总之呢,对于线程和进程的关系,大家要记住一句话哦:一个程序运行后至少有一个进程偶在一个进程中可以包含多个线程哦,而且要至少包含一个主线程哦!

好啦,以上就是关于进程和线程的区别和联系哦,可能有点晦涩难懂,希望大家仔细研究一下哦,充分了解二者的区别和联系哦!好啦,今天咱们就聊到这吧!下次再见哦!

敬请关注“品位集结号”,为您带来意外的小收获!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201207A0IKK900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券