关于线程池,守护线程,阻塞线程的理解

from time import ctime,sleep
import threading
'''
def music(func):
    for i in range(2):
        print("I was listening to %s.%s"%(func,ctime()))
        sleep(1)
def movie(func):
    for i in range(2):
        print("I was watching %s.%s"%(func,ctime()))
        sleep(5)
if __name__=='__main__':
    #以u或U开头的字符串表示unicode字符串
    music(u'世间美好与你环环相扣')
    movie(u'妖魔传')
'''
def music(func):
    for i in range(2):
        print("I was listening to %s.%s"%(func,ctime()))
        sleep(1)
        print("end1 at %s"%ctime())
def movie(func):
    for i in range(2):
        print("I was watching %s.%s"%(func,ctime()))
        sleep(5)
        print("end2 at %s"%ctime())
threads=[]
t1=threading.Thread(target=music,args=("七里香",))
threads.append(t1)
t2=threading.Thread(target=movie,args=("平凡世界",))
threads.append(t2)
if __name__=='__main__':
    # t1.setDaemon(True)
    t2.setDaemon(True)#守护线程,一旦主线程和t1线程结束,t2子线程也不再进行
    for t in threads:
        # t.setDaemon(True)
        t.start()
    #阻塞t1线程,t1线程运行完才会执行下行print代码
    # t1.join()
    print ("all end at %s"%ctime())

发布了15 篇原创文章 · 获赞 1 · 访问量 349

猜你喜欢

转载自blog.csdn.net/wanerding/article/details/104637998