1. 进程(Process)

进程是操作系统分配资源的基本单位,每个进程都有独立的内存空间、数据栈和指令计数器。在Python中,可以使用multiprocessing模块来创建和管理多个进程。

复制
import multiprocessing

def func1():
    print("This is process 1")

def func2():
    print("This is process 2")

if __name__ == "__main__":
    p1 = multiprocessing.Process(target=func1)
    p2 = multiprocessing.Process(target=func2)

    p1.start()
    p2.start()

    p1.join()
    p2.join()

以上示例中,我们使用multiprocessing.Process类创建了两个进程p1p2,并指定了它们要执行的函数func1func2。通过start方法启动进程,并使用join方法来等待进程执行完毕。

2. 线程(Thread)

线程是在进程中执行的一个独立的单位。在Python中,可以使用threading模块来创建和管理多个线程。

复制
import threading

def func1():
    print("This is thread 1")

def func2():
    print("This is thread 2")

if __name__ == "__main__":
    t1 = threading.Thread(target=func1)
    t2 = threading.Thread(target=func2)

    t1.start()
    t2.start()

    t1.join()
    t2.join()

以上示例中,我们使用threading.Thread类创建了两个线程t1t2,并指定了它们要执行的函数func1func2。通过start方法启动线程,并使用join方法来等待线程执行完毕。

3. 协程(Coroutine)

协程是一种用户态的轻量级线程,可以在单个线程内实现多个任务之间的切换。在Python中,可以使用asyncio库来创建和管理协程。

复制
import asyncio

async def func1():
    print("This is coroutine 1")
    await asyncio.sleep(1)
    print("Coroutine 1 is done")

async def func2():
    print("This is coroutine 2")
    await asyncio.sleep(2)
    print("Coroutine 2 is done")

if __name__ == "__main__":
    loop = asyncio.get_event_loop()

    tasks = [
        loop.create_task(func1()),
        loop.create_task(func2())
    ]

    loop.run_until_complete(asyncio.wait(tasks))
    loop.close()

以上示例中,我们使用asyncio模块定义了两个协程func1func2。通过asyncio.get_event_loop方法获取事件循环对象,然后使用loop.create_task方法创建任务。最后使用loop.run_until_complete方法运行任务直到完成。

需要注意的是,协程的执行需要在事件循环内进行,通过await关键字可以实现任务之间的切换,使得协程能够在不同的时间点执行。

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注