Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
守护进程目标函数不存在';在Python中不接受字符串参数_Python_Multithreading_Daemon - Fatal编程技术网

守护进程目标函数不存在';在Python中不接受字符串参数

守护进程目标函数不存在';在Python中不接受字符串参数,python,multithreading,daemon,Python,Multithreading,Daemon,免责声明,我是python新手 我想在Python中测试线程,特别是守护进程,我编写了一个简单的应用程序,它每x秒调用守护进程中的一个端点。但是,当我将字符串传递给目标函数时,该值为空: 创建守护进程: daemon = threading.Thread(target=thread_function, args=(url,), daemon=True) daemon.start() 目标函数: def thread_function(url): print("Thread operat

免责声明,我是python新手

我想在Python中测试线程,特别是守护进程,我编写了一个简单的应用程序,它每x秒调用守护进程中的一个端点。但是,当我将
字符串
传递给目标函数时,该值为空:

创建守护进程:

daemon = threading.Thread(target=thread_function, args=(url,), daemon=True)
daemon.start()
目标函数:

def thread_function(url):
    print("Thread operates with url: ", url)
    while True:
        data = call_endpoint(url)
        followers = parser(data)
        print("The selected account has {} followers!".format(followers))
        time.sleep(5)
预期结果:

线程使用url进行操作:

实际结果:

线程使用url进行操作:

这很奇怪,因为当我将int值1传递给目标函数输出时:

线程使用url:1进行操作

注意字符串url不是空的,我甚至尝试过:

daemon = threading.Thread(target=thread_function, args=("Hello",), daemon=True)
输出:

线程使用url进行操作:


您使用的是什么python版本?我尝试了你的代码(只有打印的thread_函数),它工作正常。你的主线程可能在启动线程后立即退出,因为没有剩余的事情要做,它不会等待守护进程线程完成。Python的线程“守护进程”不是Unix守护进程,它只是一个在主线程关闭时不会加入的线程。@YohannaLisnichuk您可能使用IPython进行了测试,其中主线程始终保持活动状态。我使用的是Python 3,启动守护进程后没有执行,程序完成。我以为守护进程仍然在后台运行,也在程序完成后运行你是说没有另一个线程?当然,一点也不脏。