python-多线程1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-多线程1相关的知识,希望对你有一定的参考价值。

程序\进程\线程的关系:

程序(program)

  一组功能集合的静态描述,程序至少有一个进程

进程(process)

  进程是系统进行资源分配和调度的,他们拥有自己独立的空间,进程至少有一个线程

线程(thread)

  线程是处理器调度的基本单位,他们的空间是共享的,一个进程中可以有多个线程

 

 

多线程的优点:

  使用线程可以把占据长时间的程序的任务放到后台去处理,使得用户体验更好.比如,用户点击了一个按钮去触发

某些时间的处理,可以弹出一个进度条来显示处理的进度

 

‘‘‘
本代码主要目的:
    理解多线程运行逻辑
    熟悉语法和方法
‘‘‘

import threading 
import time #用于停顿的


class myThread(threading.Thread):    #使用多线程,必须要继承父类threading.Thread
    def __init__(self,threadID,name,counter):
        threading.Thread.__init__(self)   #固定格式,相当于线程的初始化
        self.threadID = threadID
        self.name = name
        self.counter = counter
        print(初始化完成)
        
    def run(self):    #你不能确定run()在不同线程间的执行顺序,这个由CPU处理来决定的
        print("开始" + self.name)
        print_time(self.name,self.counter,5)
        print("结束" + self.name)

def print_time(threadName,counter,delay):
    while counter:
        time.sleep(delay)#停顿5s
        print("%s:%s"%(threadName,time.ctime(time.time())))#打印线程名和时间
        counter = counter - 1

#创建线程,生成两个对象
thread1 = myThread(1,"Thread-1",1)
thread2 = myThread(2,"Thread-2",2)

#开启线程
thread1.start()    #启动线程,每个线程对象必须至少调用一次该函数,他会自动调用run()方法
thread2.start()

 

可能会出现不同的结果,出现的顺序不同

初始化完成
初始化完成
开始Thread-1
开始Thread-2
Thread-1:Sat Jun 17 00:39:50 2017
结束Thread-1
Thread-2:Sat Jun 17 00:39:50 2017
Thread-2:Sat Jun 17 00:39:55 2017
结束Thread-2

 

 

 

 

  

  









以上是关于python-多线程1的主要内容,如果未能解决你的问题,请参考以下文章

python多线程

python中的多线程和多进程编程

多线程 Thread 线程同步 synchronized

多个用户访问同一段代码

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

线程学习知识点总结