proer 发表于 2020-7-25 10:38:35

关于python的线程问题

本帖最后由 proer 于 2020-7-25 10:42 编辑


为什么主线程打印出来的不是完整的五次,是因为在打印的时候线程之间进行了切换导致的吗?感谢
import threading
def action(*add):
    for arc in add:
      print(threading.current_thread().getName() +" "+ arc)
my_tuple = ("http://c.biancheng.net/python/",\
            "http://c.biancheng.net/shell/",\
            "http://c.biancheng.net/java/")

thread = threading.Thread(target=action,args=my_tuple)
thread.start()

for i in range(5):# 为什么主线程打印出来不是固定的5次,而是不确定的
    print(threading.current_thread().getName())

'''
Thread-1 http://c.biancheng.net/python/MainThread
MainThread
MainThread
MainThread
MainThread

Thread-1 http://c.biancheng.net/shell/
Thread-1 http://c.biancheng.net/java/
'''

Twilight6 发表于 2020-7-25 12:23:52



'''
Thread-1 http://c.biancheng.net/python/MainThread
MainThread
MainThread
MainThread
MainThread

Thread-1 http://c.biancheng.net/shell/
Thread-1 http://c.biancheng.net/java/
'''


多线程有的时候两个线程正好同时运行到 print ,导致打印在同一行,实际上有打印 5 次

每次线程进度不一致,导致打印结果每次都不一样,但是打印出的次数一定会对应的上



proer 发表于 2020-7-25 15:15:07

Twilight6 发表于 2020-7-25 12:23
多线程有的时候两个线程正好同时运行到 print ,导致打印在同一行,实际上有打印 5 次

每次线程 ...

谢谢,刚发现第一行有一个{:10_306:}
页: [1]
查看完整版本: 关于python的线程问题