python学习笔记(二十一)-- 进程、线程

1、进程VS线程

进程

  对于操作系统来说,一个任务就是一个进程。

  进程一个程序的执行实例就是一个进程,每一个进程提供执行程序所需的所有资源。

  一个进程包含一个主线程,0或者多个子线程。

线程

        线程是执行的最小单位。

        线程不分配自己的资源,所有线程共享进程的资源,线程之间互不影响。

线程的种类

        主线程

        子线程

        守护线程

2、多线程

Python里面多线程不能利用多个CPU,它只能在一个CPU上运行。

Python多线程使用threading模块实现

import threading #线程模块
import time

def run(url):
    time.sleep(2)
    print(url)
    print('running...')
def eat():
    print('吃饭')

start_time = time.time()#程序开始运行时的时间戳

threads = []

for i in range(10):
    # 实例化一个线程,run是函数名
    t = threading.Thread(target=run,args=('http://www.baidu.com',)) # 一个参数一定加个逗号
    t.start()#启动这个线程
    threads.append(t)#把所有子进程加进threads列表

# for thread in threads:
#     thread.join()#使用join,主线程就会等待子线程执行结束再往下执行

#使用上面join的方式或者while循环的方式
# 让主线程等待子线程执行完成再执行下面的程序
while threading.active_count() != 1: #当线程数为1,才结束循环
    pass

print(threading.active_count()) #当前线程数

end_time = time.time()#程序结束时的时间戳
print('运行时间',end_time-start_time) #这个时间是主线程执行完代码的时候,不包含子线程执行时间

猜你喜欢

转载自www.cnblogs.com/yanyan-/p/10966079.html