在实际运用中Python程序往往要处理多个任务,那么如何让Python程序执行多任务呢?这就用到了线程和进程,线程和进程又各有特点,下面就进一步阐述线程和进程
1.1.多任务就是同一时间,多个任务
1.2.并发 在一段时间内交替执行多个任务 1.3并行 同时在一起执行多个任务
资源分配的最小单位-——它是操作系统进行资源分配的调度运行的基本单位。 例如: 一个正在运行的程序
1.导入进程库
代码如下:
import multiprocessing
2.创建进程对象
进程对象=multiprocessing.Process(target=a)
a为任务名
3.启动进程执行任务
进程对象.start()
4.获取进程编号
os.getpid() #获取当前进程编号
5.程序示例
import multiprocessing
def a():
for i in range(3):
print('read')
def b():
for i in range(3):
print('write')
if __name__=='__main__':
jin = multiprocessing.Process(target=a)
ejin = multiprocessing.Process(target=b)
jin.start()
ejin.start()
运行结果
readwrite
readwrite
writeread
线程:程序执行的最小单位 一个进程中最少有一个线程来执行程序,本身不占有系统资源(只需要在运行中必需的资源),它可以与同属于一个进程的线程共享其拥有的全部资源(例如:一个程序可以同时打开两个窗口)
1.导入线程库
代码如下:
import threading
2.创建进程对象
进程对象=threading.Thread(target=a)
a为任务名
3.启动进程执行任务
线程对象.start()
4.获取进程编号
os.getpid() #获取当前进程编号
5.程序示例
import threading
import time
def a():
for i in range(3):
print('read')
time.sleep(1)
def b():
for j in range(3):
print('write')
time.sleep(1)
if __name__=='__main__':
read = threading.Thread(target=a)
write = threading.Thread(target=b)
read.start()
write.start()
运行结果
read
write
read
write
readwrite
一般情况下主线程会等待所有子线程结束才会结束
在实际运用中有时候需要避免这种情况,那么就可以通过设置守护线程来达到主线程不会等待子线程结束才结束
线程对象= = threading.Thread(target=a,daemon=True)
或者在线程启动之前加一行代码
线程对象.setDeamon(True)
本文仅仅简单介绍了线程与进程的基本概念及使用使用,进程和线程给我们提供了一种一个程序执行多个任务的途径,在实际运用中有着很大的作用。