一、线程(Thread)
1、定义:线程是操作系统能进行运算调度的最小单位,它包含在进程中,是进程的实际运作单位,一条线程是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。简单理解:线程是一系列指令的集合,操作系统通过这些指令调用硬件。
2、同一个线程中的所有线程共享同一个内存空间资源,
二、进程(Progress)
1、定义:一个程序对各资源管理和调用的集合就是进程,比如QQ对网卡、内存、硬盘的调度和管理。对于操作系统来说,某一个进程是统一的整体。进程操作CPU就要先创建一个线程。进程本身是一个资源集合,执行需要靠线程。
三、线程和进程的区别
1、同个进程的线程之间共享内存空间,包括数据交换和通信,但不同进程之间的内存是独立的
2、子进程是克隆了一份父进程的数据,子进程之间是互相独立的,不能互相访问,数据也不能共享。
3、两个进程要通信,必须通过一个中间进程代理来实现。
4、一个线程可以操作同一个进程中的其他线程,但是进程只能操作子进程
5、对主线程的修改,可能会影响到其他的子线程,因为他们共享内存数据,但对主进程的修改,不会影响其他子进程。
四、多线程的代码:
import threading
import time
class MyThread(threading.Thread):
"""
# 用自定义一个子类的方式来启动线程
"""
def __init__(self, n):
super(MyThread, self).__init__()
self.n = n
def run(self):
print("你好,%s" % self.n)
time.sleep(2)
start_time = time.time()
thread_list = []
# 启动50个线程
for i in range(50):
t1 = MyThread("t%s" % i)
t1.start()
thread_list.append(t1)
# 等待