【Python面试题】-系统编程

本文详细介绍了Python系统编程中的核心概念,包括进程、多进程、多线程、协程的理解及其应用场景。讨论了进程间通信,特别是使用Queue进行数据交换,并通过示例展示了如何创建和管理进程。同时,解释了线程安全、互斥锁、死锁、同步与异步、阻塞与非阻塞的概念。最后,阐述了Python中进程和线程的使用场景以及IO密集型和CPU密集型任务的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Python面试题】-系统编程

1. 进程总结

进程:程序运行在操作系统上的一个实例,就称之为进程。进程需要相应的系统资源:内存、时间 片、pid。

创建进程:

1.首先要导入 multiprocessing 中的 Process; 2.创建一个 Process 对象;

.创建 Process 对象时,可以传递参数;

1.p = Process(target=XXX, args=(元组,) , kwargs={key:value})

2.target = XXX 指定的任务函数,不用加()

3.args=(元组,) , kwargs={key:value} 给任务函数传递的参数

.使用 start()启动进程; 5.结束进程。

Process 语法结构:

 

Process([group [, target [, name [, args [, kwargs]]]]])

target:如果传递了函数的引用,可以让这个子进程就执行函数中的代码 args:给 target 指定的函数传递的参数,以元组的形式进行传递 kwargs:给 target 指定的函数传递参数,以字典的形式进行传递 name:给进程设定一个名字,可以省略 group:指定进程组,大多数情况下用不到

Process 创建的实例对象的常用方法有: start():启动子进程实例(创建子进程) is_alive():判断进程子进程是否还在活着 join(timeout):是否等待子进程执行结束,或者等待多少秒 terminate():不管任务是否完成,立即终止子进程

Process 创建的实例对象的常用属性: name:当前进程的别名,默认为 Process-N,N 为从 1 开始递增的整数 pid:当前进程的 pid(进程号)

给子进程指定函数传递参数 Demo:

1.import osfrom multiprocessing import Process

2.import

time

3.

4.def pro_func(name, age, **kwargs):

5. for i in range(5):

6. print("子进程正在运行中,name=%s, age=%d, pid=%d" %(name, age, os.getpid()))

7. print(kwargs)

8. time.sleep(0.2)

9.

10.if name == '   main   ':

11. # 创建 Process 对象

12. p = Process(target=pro_func, args=('小明',18), kwargs={'m': 20})

13. # 启动进程

14. p.start()

15. time.sleep(1)

16. # 1 秒钟之后,立刻结束子进程 17. p.terminate()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值