进击のpython


并发编程——线程理论


前面讲的是进程的相关理论部分

从本节开始,就是对线程的相关知识的研究了

本节对线程进行一个定义,知道什么是线程

以及横向对比进程,知晓两者的不同点


什么是线程

线程是执行程序的最小单位

举个例子:

老师让你读一本书,那么这个书可以看作是进程,而你读书的这个过程就是线程

线程就是用来执行程序的,那么就可以这么想

每开一个进程是不是就要执行该进程,而执行程序的最小单位是线程

所以每开一个进程,随之而来的就是自动开一个线程

进程将资源都聚合起来,然后给线程执行

多线程就是在一个进程里存在多个线程,多个线程共享这个进程里面的资源

就好像班级同学一起读投影仪上的文章一样,投影仪上的文章就是进程里面的资源

全班同学就是一个一个的线程,几乎同时来执行读书这个‘任务’


线程VS进程

线程和进程的区别,主要体现在以下这六个方面:

1.线程共享创建它的进程的地址空间;进程有自己的地址空间

2.线程可以直接访问其进程的数据段;进程有自己的父进程数据段副本

3.线程可以直接与其进程的其他线程通信;进程要使用进程间通信与兄弟进程通信

4.新线程很容易创建;新进程需要父进程的重复

5.线程可以对同一进程的线程进行相当大的控制;进程只能对子进程进行控制

6.对主线程的更改(取消、优先级更改等)可能会影响进程的其他线程的行为;

对父进程的更改不会影响子进程

其实总结起来,就两个关键:

1.线程共享进程的数据

2.创建线程开销远小于进程


*****
*****

版权声明:本文为jevious原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jevious/p/11400699.html