zoukankan      html  css  js  c++  java
  • python-threading

    #!/usr/bin/env python
    #coding:utf-8
    #单线程,比如想让程序运行music函数和move函数,那程序它会先执行music()再执行move(),就会比较>耗时间
    from time import ctime,sleep
    def music():
        for i in range(2):#执行睡眠2次一秒
            print "I was listening to music. %s" %ctime()
            sleep(1)
    def move():
        for i in range(2):#执行睡眠2次5秒
            print "I was at the movies! %s" %ctime()
            sleep(5)
    if __name__ == '__main__':
        music()
        move()
        print "all over %s" %ctime()

    #!/usr/bin/env python
    #coding=utf-8
    import threading
    from time import ctime,sleep
    def music(func):#定义一个音乐的函数,打印歌曲2次,时间间隔为一秒
        for i in range(2):
            print "I was listening to %s. %s" %(func,ctime())
            sleep(1)
    def move(func):#定义一个音乐的函数,打印电影2次,时间间隔为五秒
        for i in range(2):
            print "I was at the %s! %s" %(func,ctime())
            sleep(5)
    threads = []#创建一个数组
    th1 = threading.Thread(target=music,args=(u'我以为-品冠',))#创建线程th1,使用threading.Thread()方法,在这个方法中调用music方法target=music,args方法对music进行传参。 把创建好的线程th1装到threads数组中。
    threads.append(th1)
    th2 = threading.Thread(target=move,args=(u'功夫足球-周星驰',))
    threads.append(th2)
        if __name__ == '__main__':
            for t in threads:#最后通过for循环遍历数组。(数组被装载了t1和t2两个线程)
            t.setDaemon(True)#将线程声明为守护线程,必须在start() 方法调用之前设置,如果不设置>为守护线程程序会被无限挂起。子线程启动后,父线程也继续执行下去,当父线程执行完最后一条语句print "all over %s" %ctime()后,没有等待子线程,直接就退出了,同时子线程也一同结束。
            t.start()

        t.join()
        print "all over %s" %ctime()
    '''先把倒数第二的t.join()方法注释掉,从执行结果来看,子线程(muisc 、move )和主线程(print "all over %s" %ctime())都是同一时间启动,但由于主线程执行完结束,所以导致子线程也终止,所>以这个小脚本还不完整。 但是我们只对上面的程序加了个join()方法,用于等待线程终止。join()的
    作用是,在子线程完成运行之前,这个子线程的父线程将一直被阻塞,所以可以可以试一下没有加join>方法和加join方法的区别。 注意:  join()方法的位置是在for循环外的,也就是说必须等待for循环里
    的两个进程都结束后,才去执行主进程。'''
                                              

  • 相关阅读:
    HDU5873
    HDU5874
    HDU1565(状态压缩dp)
    POJ2774(二分+哈希)
    HDU4474
    HDU2602(背包)
    单链表
    POJ2503(hash)
    POJ1200(hash)
    顺序表
  • 原文地址:https://www.cnblogs.com/wudongyu/p/6536703.html
Copyright © 2011-2022 走看看