gpt4 book ai didi

python - 如何制作 while(True) : two loops run at same time in python

转载 作者:行者123 更新时间:2023-12-01 02:39:09 30 4
gpt4 key购买 nike

基本上我需要同时运行两个 while 循环。原因是我需要一个循环来更新 GUI,另一个循环来检查程序是否连接到互联网。所以也许这需要多线程,或者也许我只需要一个网页就可以解决我的问题。这是我的源代码:

# -*- coding: utf-8 -*-

import sys
import urllib2
from Tkinter import *
import time
import socket

def TheMainProgram():
airid = 'http://www.aviationweather.gov/metar/data?ids={airid}&format=raw&hours=0&taf=off&layout=off&date=0'.format(airid=e1.get())
website = urllib2.urlopen(airid)
website_html = website.read()
data_start = website_html.find("<!-- Data starts here -->")
br1 = data_start + 25
br2 = website_html.find("<br />")
metar_slice = website_html[br1:br2]
print("Here is the undecoded METAR data:\n"+metar_slice)
root2 = Tk()
root2.title("#Conection_Made#")
metar_dat_label = Label(root2, text="Here is the undecoded METAR data:")
metar_dat_label_ln_2 = Label(root2, text=metar_slice)
metar_dat_label.grid(row=0)
metar_dat_label_ln_2.grid(row=1)


def _quit():
sys.exit()

def internet(host="8.8.8.8", port=53, timeout=3):
try:
socket.setdefaulttimeout(timeout)
socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((host, port))
return True
except Exception:
return False


def tkupdate():
while True:
root1.update()


def internet_loop():
while True:
out = internet()
if out == True:
connetion2internet.configure(text="YOU ARE CONNECTED TO THE INTERNET", fg="green")
if out == False:
connetion2internet.configure(text="YOU ARE NOT CONNECTED TO THE INTERNET", fg="red")


root1 = Tk()
root1.title("Welcome")
warning = Label(root1, text="*********** WARNING REQURIES INTERET TO RUN ***********")
warning.grid(row=0)
connetion2internet = Label(root1, text="")
connetion2internet.grid(row=1)
airport_code = Label(root1,text="Enter Airport Code:")
airport_code.grid(row=2, sticky="W")
e1 = Entry(root1)
e1.grid(row=2, sticky="E")
button1 = Button(root1, text="Contunue", command=daMainProgram).grid(row=3, sticky="W")
button2 = Button(root1, text="Quit", command=_quit)
button2.grid(row=3, sticky="E")
tkupdate()
internet_loop()

最佳答案

像下面这样的怎么样?产生两个进程。每个函数都是并行运行的,并且目标函数可以替换为您自己的函数。

from multiprocessing import Process
from time import sleep

def func1():
while True:
print("func1 up and running")
sleep(1)

def func2():
while True:
print("func2 up and running")
sleep(1)


if __name__ == '__main__':

proc1 = Process(target=func1)
proc1.start()

proc2 = Process(target=func2)
proc2.start()

输出为:

func1 up and running
func2 up and running
func1 up and running
func2 up and running
func1 up and running
func2 up and running
func1 up and running
func2 up and running
...

关于python - 如何制作 while(True) : two loops run at same time in python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45909604/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com