python 进程
os.fork [知道即可]
自定义类继承进程
start() 调用run()
进程池pool
进程间通信queue
线程
死锁
银行家算法
生产消费模式
1.多线程 , start()方法是开启方法, join()目的是执行完才往下执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/usr/bin/env python # -*- coding:utf-8 -*- import threading #线程 import time def music(num = 5 ): #有一个参数 print ( "music start %s" % time.ctime()) time.sleep(num) print ( "music end %s" % time.ctime()) def game(num = 3 ): #有一个参数 print ( "game start %s" % time.ctime()) time.sleep(num) print ( "game end %s" % time.ctime()) if __name__ = = '__main__' : t1 = threading.Thread(target = music) t2 = threading.Thread(target = game) t1.start() t2.start() t1.join() #t1执行完,才执行能执行下面的"ending....." t2.join() print ( "ending........." ) #主线程输出ending ''' music start Thu Jul 13 14:30:25 2017 game start Thu Jul 13 14:30:25 2017 game end Thu Jul 13 14:30:28 2017 music end Thu Jul 13 14:30:30 2017 ending......... [Finished in 5.1s] ''' |
2.自定义线程, start()调用的是重写的 run()方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #!/usr/bin/env python # -*- coding:utf-8 -*- import threading #线程 import time class MyThead(threading.Thread): def __init__( self ,num): threading.Thread.__init__( self ) self .num = num #start()会调用run()方法 def run( self ): print "running on number:" , self .num print "start time " ,time.ctime() time.sleep( self .num) print "end time " ,time.ctime() if __name__ = = '__main__' : t1 = MyThead( 3 ) t2 = MyThead( 4 ) t1.start() t2.start() print ( "ending........." ) #主线程输出ending """ running on number: 3 start time Thu Jul 13 14:51:01 2017 running on number:ending......... 4 start time Thu Jul 13 14:51:01 2017 end time Thu Jul 13 14:51:04 2017 end time Thu Jul 13 14:51:05 2017 [Finished in 4.1s] """ |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)