小编Dhi*_*wal的帖子

使用多线程在赋值之前引用的局部变量

用于添加和删除列表中的值的代码是在不同线程中执行的操作.

在多线程中使用这些全局变量:

from threading import Thread
import time

a=[]
i = 0
j = 0
Run Code Online (Sandbox Code Playgroud)

thread1的函数:

def val_in():
    while 1:
        a.append(raw_input())
        print "%s value at %d: %d added" % ( time.ctime(time.time()), i ,int(a[i])) // line 14
        i+=1
Run Code Online (Sandbox Code Playgroud)

线程2的功能:

def val_out():
    while 1:
        time.sleep(5)
        try:
            print "%s value at %d: %d deleted" % (time.ctime(time.time()), j, int(a.pop(j)))
            i-=1
        except:
            print"no values lefts"
        time.sleep(2)
Run Code Online (Sandbox Code Playgroud)

定义和启动线程:

t = Thread(target = val_in)
t1 = Thread(target= val_out)
t.start()
t1.start()
Run Code Online (Sandbox Code Playgroud)

现在当输入为1,它应该被添加到列表中a,但是有一个错误:

Error: Exception …
Run Code Online (Sandbox Code Playgroud)

python python-multithreading python-2.7

3
推荐指数
1
解决办法
2468
查看次数

标签 统计

python ×1

python-2.7 ×1

python-multithreading ×1