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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏