进程和线程的通信
通过进程和线程执行的函数没有返回值,不太明白队列是怎么来解决这个问题的呢?
我理解队列就是进程间/线程间消息的传递,好像和返回值没有关系
10
收起
正在回答
1回答
同学,你好!
1、同学可以参考下使用队列实现进程之间数据通信的代码,如下:
import multiprocessing from multiprocessing import Queue class Test(): def __init__(self): self.name = '123' # 修改属性函数 def get_attr(self, name, que): self.name = name que.put(self.name) # 向队列中放入数据 if __name__ == "__main__": que = Queue() # 创建队列 test = Test() # new一个类对象 # 创建一个进程 process = multiprocessing.Process(target=test.get_attr, args=('name值变为了456', que)) # 开启进程 process.start() print(test.name) # 进程下无法访问修改后的name值 print(que.get()) # 使用队列的方式成功访问修改后的name值 process2 = multiprocessing.Process(target=test.get_attr, args=('name值变为了789', que)) process2.start() print(que.get())
2、同学说的对,队列可以实现数据之间的通信,与返回值没有关系
祝学习愉快~
Python全能工程师
- 参与学习 人
- 提交作业 16247 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星