Python - 多线程
发布日期:2021-06-30 19:50:29 浏览次数:2 分类:技术文章

本文共 1197 字,大约阅读时间需要 3 分钟。

问题导读:

python多线程:

  1.  创建我们自己的线程类(继承 threading.Tread),重新run 方法
  2.  实例化,start(多线程实际还是单线程,只是换着执行,间隔很短,让人产生错觉)

线程同步:

  1. 创建线程锁
  2. 在需要设置加锁的地方(得到锁,释放锁)
  3. join 依次检查线程池中是否存在 未死亡的线程,存在则阻塞当前线程
解决方案:
#!/usr/bin/python# -*- coding: UTF-8 -*-import threadingimport timeclass myThread (threading.Thread):    def __init__(self, threadID, name, counter):        threading.Thread.__init__(self)        self.threadID = threadID        self.name = name        self.counter = counter    def run(self):        print "Starting " + self.name       # 获得锁,成功获得锁定后返回True       # 可选的timeout参数不填时将一直阻塞直到获得锁定       # 否则超时后将返回False        threadLock.acquire()        print_time(self.name, self.counter, 3)        # 释放锁        threadLock.release()def print_time(threadName, delay, counter):    while counter:        time.sleep(delay)        print "%s: %s" % (threadName, time.ctime(time.time()))        counter -= 1threadLock = threading.Lock()threads = []# 创建新线程thread1 = myThread(1, "Thread-1", 1)thread2 = myThread(2, "Thread-2", 2)# 开启新线程thread1.start()thread2.start()# 添加线程到线程列表threads.append(thread1)threads.append(thread2)# 等待所有线程完成'''依次检查线程池中是否有未dead的线程,有则阻塞'''for t in threads:    t.join()    print t.getName()print "Exiting Main Thread"

转载地址:https://lipenglin.blog.csdn.net/article/details/52911910 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:cmd - 常用命令
下一篇:大数据 - 文章目录(入门级别)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月27日 22时22分53秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章