首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中使用多重处理来监视机器人手臂的坐标?

如何在python中使用多重处理来监视机器人手臂的坐标?
EN

Stack Overflow用户
提问于 2022-09-02 14:52:35
回答 1查看 47关注 0票数 0

在执行x时,我使用下面的代码打印yMove_Relative()坐标。移动相对函数似乎没有被执行,因为在执行结束时,我的输出是(x = 0y = 0)。我做错了什么?

代码语言:javascript
复制
import multiprocessing
from multiprocessing import Pool
import sys

x = 0
y = 0


def monitor_coordinates():
    global x
    global y
    print("x: " + str(x) + " y: " + str(y))
    
    
def Move_Relative():    
    global x
    global y
    while x < 100000:
        x = x + 1   
        y = y + 0.5

if __name__=='__main__':
   
    q = multiprocessing.Process(target = Move_Relative) 
    q.start()
    p = multiprocessing.Process(target = monitor_coordinates)    
    p.start()
    
    q.join()
    p.join()
EN

回答 1

Stack Overflow用户

发布于 2022-09-02 15:03:19

全局变量在进程之间不共享。一个很好的选择是使用multiprocessing.Value

代码语言:javascript
复制
import multiprocessing
from multiprocessing import Pool, Value
import sys

x = Value('d', 0)
y = Value('d', 0)


def monitor_coordinates(x, y):
    print("x: " + str(x.value) + " y: " + str(y.value))


def Move_Relative(x, y):
    while x.value < 100000:
        x.value = x.value + 1
        y.value = y.value + 0.5


if __name__ == '__main__':
    q = multiprocessing.Process(target=Move_Relative, args=(x, y))
    q.start()
    p = multiprocessing.Process(target=monitor_coordinates, args=(x, y))
    p.start()

    q.join()
    p.join()

产出:

代码语言:javascript
复制
x: 88826.0 y: 44413.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73584433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档