随着剧本上焦点理解为什么多线程无法读取全局变量
T0 =了time.time()##定义这个全局变量是全球
这个功能
DEF时间戳(T0):
冲压
...返回( “[” + STR(了time.time() - T 0)+ “]”)##从时间初始启动
我想我的时间戳脚本的每个打印()与
打印(时间戳(T0)+ “” ...什么... “”)
这工作,但是当我被
在范围的thread_id enterring多线程(Win32的safe_os):
... p =处理(目标= fonction,ARGS =((的thread_id), “测试” ))
... p.start()
... thread_list.append(P)
为了
DEF fonction(的thread_id,filetodo):
...打印(timestamp(t0)+“加载核心”+ str(thread_id))
... print(timestamp(t0)+ str(filetodo)+“on core”+ str(thread_id))
... print (timestamp(t0)+“Free core”+ str(thread_id))
我得到这个标准输出:
[2.70299983025] 297 JPG/36087文件
[2.75] Enterring多线程
[2.75]的Win32发现:2芯(S)
[0.0]负载核心0
[0.0]关于核心试验0
[0.0]免费核心0
[0.0]负载芯1
[0.0]于核心试验1
[0.0]免芯1
我可以看到,我的呼叫到时间戳()并且t0正在工作,但不在p.start()中。我想知道如何(以及为什么)我需要纠正?
PS:我试图与time.clock,但在Win32中是指一个线程(不是脚本)的开始/
只是想指出你正在创建一个新的进程,而不是一个新的线程。 –
您应该使用代码块而不是代码块。用4个空格缩进每个代码块。或者选择块并按下CTRL + K。 –
线程(同一进程)在共享内存空间中运行,而进程在单独的内存空间中运行。 < - 好的,我明白了...... THX GREG! –