Python——threading(线程模块)
创建和使用方式基本和进程一致。
有关线程的文字讲述,请见:计算机——进程&线程&协程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import time from threading import Thread,current_thread, enumerate ,active_count def func(i1,i2): i = i1 + i2 time.sleep( 0.5 ) print (current_thread()) #查看线程的ID并以对象形式显示,适用于函数使用, for i in range ( 5 ): t = Thread(target = func,args = (i,i * 2 )) #传值和进程一样,需要使用元组形式进行传输。 t.start() #启动也是需要使用start print (t.ident) #可以查看所创建的线程ID,可以用在面向对象中使用。 t.daemon = True #创建守护线程。 print ( enumerate ()) #可以看到正在运行的主线程和子线程。以对象法师呈现在列表当中。 print (active_count()) #可以查看子线程的个数,包括主线程。 |
线程+锁的单例模式
1 2 3 4 5 6 7 8 9 10 11 12 | from threading import Thread,Lock class SingLeton( object ): instance = None lock = Lock() def __new__( cls , * args, * * kwargs): with cls .lock: if not cls .instance: cls .instance = object .__new__( cls ) return cls .instance for i in range ( 10 ): print (SingLeton()) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)