码迷,mamicode.com
首页 > 编程语言 > 详细

python学习之多线程编程

时间:2020-04-22 19:52:09      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:threading   str   学习   读写   占用   img   join()   参考   info   

多线程有点类似于多个程序同时运行。

其有以下优点:

  • 使用线程可以把占据长时间的程序中的任务放到后台去处理。
  • 程序的运行速度可能加快。
  • 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。

下面是学习的代码。一些关键的点在注释里标出:

import threading
import time
list = [0,0,0,0,0,0,0,0,0,0,0,0]
class 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 ("开始线程:",self.name)
        # 获得锁,成功获得锁定后返回 True
        # 可选的timeout参数不填时将一直阻塞直到获得锁定
        # 否则超时后将返回 False
        threadLock.acquire()
        print_time(self.name,self.counter,list.__len__())
        # 释放锁
        threadLock.release()
    def __del__(self):
        print (self.name,"线程结束!")
def print_time(threadName,delay,counter):
    while counter:
        time.sleep(delay)
        list[counter-1] += 1
        print ("[%s] %s 修改第 %d 个值,修改后值为:%d" % (time.ctime(time.time()),threadName,counter,list[counter-1]))
        counter -= 1
threadLock = 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)
# 等待所有线程完成
for t in threads:
    t.join()
print ("主进程结束!")

运行结果如下:

 

 

技术图片

 

 

参考网站:菜鸟教程 https://www.runoob.com/python/python-multithreading.html  一个很好计算机技术的基础网站,涉及的范围很广。

python学习之多线程编程

标签:threading   str   学习   读写   占用   img   join()   参考   info   

原文地址:https://www.cnblogs.com/ManbaDF99/p/12755164.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!