线程:实现多任务的另一种方式
一个进程中,也经常需要同时做多件事情,就需要同时运行多个子任务,就是线程 又称轻量级的进程,是更小的执行单元
一个进程可拥有多个并行的线程,当中每个每一个线程共享进程的资源变量和对象
一个进程中的线程共享相同的内存单元,从同一堆中分配对象,通信数据交换和同步操作
由于线程间通信是同一地址空间进行的,所以不需要额外的通信机制
线程和进程的区别
1.进程是系统进行资源分配和调度的一个独立的单位,在执行过程中有独立的内存单元,而多个线程共享内存,
2.一个程序至少一个进程,一个进程至少有一个线程
3.线程是进程的实体,是cpu调度和分派的基本单位。它是比进程更小的能独立运行的基本单位
4.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源
5.线程不能独立执行,必须依存在进程中
“”"创建 线程的两种方式
第一:通过threading.Thread 直接在线程中运行函数
第二:通过继承threading.Thread类来创建线程 重写run方法 然后调用start()方法
#任何进程默认会启动一个线程,这个线程成为主线程,主线程可以启动新的子线程
import threading
class Mythread(threading.Thread):
def run(self):
for i in range(5):
print(i)
t = Mythread()
t2 = Mythread()
t.start() t2.start()
import threading
import time
def say():
print(“子线程%s”%(threading.current_thread().name))
time.sleep(1)
print(“亲爱的”)
if name == “main”:
print(threading.current_thread().name)
for i in range(5):
t = threading.Thread(target = say())#指定线程执行的函数
t.start()