python中Thread实现多线程任务
目录
多线程概括:
使用 Thread 模块创建线程
如果不使用多线程:
多线程概括:
多线程是一种并发执行的编程方式,允许程序同时执行多个独立的线程,每个线程在程序中运行独立的任务。每个线程都是程序的基本执行单元,拥有自己的执行序列、局部变量和执行上下文。
在多线程编程中,多个线程可以同时执行,而不是按照严格的顺序进行。这使得程序能够更有效地利用多核处理器,提高整体性能。多线程通常用于执行并行计算、提高响应性以及处理异步任务。
每个线程在执行时都可以独立执行不同的代码段,但它们共享进程的资源,如内存空间和文件句柄。因此,需要谨慎处理多线程之间的数据共享和同步问题,以避免竞态条件和数据一致性问题。多线程编程可以通过操作系统的线程调度器或编程语言提供的线程库来实现。
使用 Thread 模块创建线程
Python 的 threading
模块提供了创建和管理线程的工具。通过导入 threading
模块,你可以使用 Thread
类创建新线程,例如:
from threading import Thread
from time import sleep, ctime
class MyClass(object):
def func(self,name,sec):
print(name,':开始', '时间:', ctime())
sleep(sec)
print(name,':结束', '时间:', ctime())
def main():
# 创建 Thread 实例
t1 = Thread(target=MyClass().func, args=(1, 1))
t2 = Thread(target=MyClass().func, args=(2, 2))
# 启动线程运行
t1.start()
t2.start()
# 等待所有线程执行完毕
t1.join() # join() 等待线程终止,要不然一直挂起
t2.join()
if __name__=="__main__":
main()
这表明两个线程是同时执行的,线程 1 在休眠 1 秒后结束,线程 2 在休眠 2 秒后结束。多线程的优势在于能够并行执行任务,提高程序的执行效率。在这个例子中,由于 sleep
模拟了耗时的任务,所以两个线程可以在几乎同时开始,但由于休眠不同的时间,它们的结束时间有所不同。
如果不使用多线程:
from time import sleep, ctime
def func(name,sec):
print(name,':开始', '时间:', ctime())
sleep(sec)
print(name,':结束', '时间:', ctime())
if __name__=="__main__":
func(1,1)
func(2,2)
可以看到程序1结束之后才执行程序2的,所有多线程可以并发执行,减少程序所用时间