了解为什么多线程无法读取全局变量

mat.viguier

使用脚本全局变量中定义的全局变量

t0 = time.time()##是全局的

和这个功能

def timestamp(t0):
... return(“ [” + str(time.time()-t0)+“]”)##从初始开始的时间戳记

我正在尝试为脚本的每个print()加上时间戳

打印(timestamp(t0)+“” ...任何...“”)

这可行,但是当我输入多线程时

对于范围(win32-safe_os)中的thread_id:
... p =进程(target =函数,args =(((thread_id),“ test”)))
... p.start()
... thread_list.append(p)

为了

def fonction(thread_id,filetodo):
...打印(timestamp(t0)+“ Load core” + str(thread_id))
... print(timestamp(t0)+ str(filetodo)+“在内核” + str( thread_id))
... print(timestamp(t0)+“ Free core” + str(thread_id))

我得到这个标准:

[2.70299983025] 297 jpg / 36087文件
[2.75]输入多线程
[2.75] Win32查找:2个内核[0.0]在内核0上
加载内核0
[0.0]测试
[0.0]空闲内核0
[0.0]加载内核1
[ 0.0]在核心1上测试
[0.0]空闲核心1

我可以看到我对timestamp()和t0的调用正在工作,但是在p.start()中却没有。我想知道如何(以及为什么)需要更正?

PS:我尝试使用time.clock,但是在win32中,它指的是THREAD(不是脚本)的开头/

大卫·赫弗南(David Heffernan)

每个进程都有一个单独的全局变量实例。如果希望每个进程看到相同的值,则需要将该值作为参数传递给每个进程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

为什么全局变量是邪恶的?

来自分类Dev

为什么在调试时全局变量“不可访问”?

来自分类Dev

了解全局变量的概念

来自分类Dev

为什么更改全局变量的值不生效?

来自分类Dev

为什么不能删除全局变量?

来自分类Dev

为什么我不能增加全局变量

来自分类Dev

为什么全局变量不保留值

来自分类Dev

为什么在BGE Python中变量不是全局变量

来自分类Dev

为什么全局变量存储在堆中?

来自分类Dev

为什么NaN是JavaScript中的全局变量?

来自分类Dev

为什么未定义全局变量?

来自分类Dev

为什么不能访问此全局变量?

来自分类Dev

为什么C ++中存在全局变量?

来自分类Dev

为什么变量不是全局变量但函数是可以的?

来自分类Dev

蟒蛇:多线程:自我作为全局变量

来自分类Dev

为什么声明的顺序关系在模块注释全局变量?

来自分类Dev

为什么Python使用全局变量而不是方法参数?

来自分类Dev

为什么Rmd更改全局变量(默认)?

来自分类Dev

为什么此Python代码无法在其功能之外打印出全局变量

来自分类Dev

无法读取属性全局变量Vuejs

来自分类Dev

为什么在函数中无法访问我的全局变量?

来自分类Dev

同时从2个线程读取全局变量

来自分类Dev

无法读取CoffeeScript全局变量

来自分类Dev

不了解全局变量

来自分类Dev

为什么我无法读取嵌套函数中全局变量的变化?

来自分类Dev

为什么我的包含函数无法获取全局变量值?

来自分类Dev

使用多线程时保护全局变量

来自分类Dev

为什么全局变量的地址变了

来自分类Dev

为什么我的函数和循环无法访问我的全局变量?