Python教程

python线程和锁的应用,执行查看效果

本文主要是介绍python线程和锁的应用,执行查看效果,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import threading
from atexit import register
from random import randrange
from threading import Thread, Lock
from time import sleep, ctime

lock = Lock()
loops = (randrange(2, 5) for x in range(randrange(3, 7)))
print(loops)


class CleanOutputSet(set):
    def __str__(self):
        return ','.join(x for x in self)


remaining = CleanOutputSet()


def loop(sec):
    myname = threading.current_thread().name
    with lock:
        remaining.add(myname)
        print('[%s] started %s' % (ctime(), myname))

    sleep(sec)

    with lock:
        remaining.remove(myname)
        print('[%s] completed %s (%d sec)' % (ctime(), myname, sec))
        print('remaining : %s' % (remaining or 'None'))


def _main():
    for p in loops:
        Thread(target=loop, args=(p,)).start()


@register
def _atexit():
    print('all done at:', ctime())


if __name__ == '__main__':
    _main()
    # for i in loops:
    #     print(i)

 

这篇关于python线程和锁的应用,执行查看效果的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!