进程和线程的区别:
1.进程:每个程序都会有一个进程,负责管理程序各个功能的执行,进程只会有一个
而且至少有一个(相当于包工头)
2.线程:每个进程里面至少有一个线程,称之为主线程,除此以外还会有其他线程,称之为分线程
线程是控制任务执行的最小单位(相当于农名工)
3.进程负责控制各个线程的执行,当程序运行,进程启动,程序关闭,进程结束
主线程和分线程:
1.代码运行默认都是在主线程里面,如果需要执行新的任务,可以开辟分线程
2.分线程个数没有限制,分线程里面的任务结束后,分线程结束
分线程的使用场景:
1.当有大量任务需要执行的时候,可以将任务放入到分线程里面
2.当有大量任务需要执行的时候,而任务的执行顺序需要指定的时候,可以使用分线程
3.当界面有大量界面需要更新的时候,需要放入到分线程
下面有一段代码表示:
import threading
import time
exitFlag = 0
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
def run(self): # 把要执行的代码写到run函数里面 线程在创建后会直接运行run函数
print("Starting " + self.name)
print_time(self.name, self.counter, 5)
print("Exiting " + self.name)
def print_time(threadName, delay, counter):
while counter:
if exitFlag:
(threading.Thread).exit()
time.sleep(delay)
print("%s: %s" % (threadName, time.ctime(time.time())))
counter -= 1
# 创建新线程
thread1 = myThread(1, "Thread-1", 1)
thread2 = myThread(2, "Thread-2", 2)
# 开启线程
thread1.start()
thread2.start()
print("Exiting Main Thread")