程序进程线程的关系:
程序(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