一、作者感慨
。
二、什么是线程/进程
线程是操作系统能够进行运算调度的最小单位。他被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中的一个单一顺序的控制流,一个进程中可以并发多个线程,每个线程并行执行不同的任务。
进程:要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,堆存的管理,网络接口调用等,对资源管理的集合就可以成为进程
线程:是操作系统最小的调度单位,是一串指令的集合
进程 要操作cpu,必须要创建一个线程~
作者大白话解释:
电脑有固定的内存,我们可以吧应用程序理解成进程,当我们打开各种各样的应用程序的时候,我们的内存就会越来越小,这是因为进程调度内存空间,不同进程占用不同的空间相互不进行干涉,可以理解成qq程序崩溃不会影响到word程序,线程在进程中,线程会跟cup进行联系调度,如果qq进程中 一个线程崩溃,会导qq进程的崩溃~简单理解进程就是划分程序要用的内存,里面包含着一些进程,进程会跟cup进行运算的调度
三、区别
如果有人问你,进程和线程那个运行快,你要注意了因为两者没有可比性,线程跟进程被包含关系,但如果问线程和进程谁启动的快,这儿时候线程快
线程:所有同一个进程里的线程是共享同一块内存空间的(上面不是说了面进程是开辟空间的,线程在进程中,所有线程当然是共享进程开辟出来的空间的)
1.线程是共享内存空间,进程的内存是独立的
2.多进程是相互独立的,多线程会产生相互干扰(进程是开辟房间互不打扰,而线程是使用进程的房间,多个线程难免不会出现相互干扰的现象)
3.一个进程的线程之间可以直接交流,两个进程想通信,必须通过一个中间代理来实现
4.创建新线程很简单,创建新进程需要对其父进程进行一次克隆
5.一个线程可以控制和操作同一进程里的其他线程,但是进程只能操作子进程
四、python多线程实例
这里需要引入一个新的模块threading,调用thread方法其中target参数函数,args是函数的参数~
例一未使用多线程
import time
def run(n):
print('task',n)
time.sleep(2)