首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python线程在1循环后卡住

Python线程在1循环后卡住
EN

Stack Overflow用户
提问于 2017-12-05 13:42:27
回答 1查看 1.3K关注 0票数 2

使用python 3进行一些线程处理,同时运行两件事情。这是我测试的脚本。

代码语言:javascript
运行
复制
from threading import Thread
import time as t
x=1
z=1
var=0
def firstFunction():
    global var
    while x == 1:

        var += 1
        t.sleep(1)
def secondFunction():

    while z == 1:
            print(var)
    t.sleep(1)
add=Thread(target=firstFunction)
see=Thread(target=secondFunction)
add.start()
see.start()

因为某种原因,当我运行它的时候,你告诫它要计数,对吗?但它只是说

1

但是如果我尝试一个包含脚本的脚本,询问您是否希望看到var,它工作得很好。有什么办法可以让这件事不用我去问吗?这是发问的密码。

代码语言:javascript
运行
复制
from threading import Thread
import time as t
x=1
z=1
var=0
def firstFunction():
    global var
    while x == 1:
        var += 1
        t.sleep(1)
def secondFunction():

    while z == 1:
            see1=input("See var? : ")
            if see1 == "y":
                print(var)
            elif seel == "n":
                print("ok")
            else:
                print("not option")
add=Thread(target=firstFunction)
see=Thread(target=secondFunction)
add.start()
see.start()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-05 14:05:09

当您像这样运行您的代码时,主线程将在启动两个子线程后直接到达末端并终止。

你必须等到线程完成。.join()会这样做,所以您只需将这些行添加到您的程序的末尾

代码语言:javascript
运行
复制
add.join()
see.join()

主线程将等待两个线程完成。

请注意,线程和联接的不幸星座可能导致死锁。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47655075

复制
相关文章

相似问题

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