• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

博客园    首页    新随笔    联系   管理    订阅  订阅
python--多线程多进程

一、进程
  对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了
两个记事本进程。进程是很多资源的集合。一个进程可以有多个线程,线程是包含在一个进程里面的,一个进程里面默认有一个线程

二、线程(Thread)
  线程就是程序里面最小的执行单元,在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。有些进程还不
止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。

三、多线程
  多线程就是N个线程一起干活,并发,python中的多线程使用theading模块
下面是一个简单多线程

1 import threading,time
2 def run():
3     time.sleep(3)#干活需要3秒
4     print('哈哈哈')
5 for i in range(5):
6     t = threading.Thread(target=run)#实例化了一个进程
7                         #运行线程,括号里面的就是要做的事
8     t.start()

四、多线程等待
以下用一个简单的例子来说明

 1 import threading,time
 2 def run():#主线程
 3     time.sleep(3)
 4     print('哈哈')
 5 
 6 start_time=time.time()
 7 threads=[]#存放启动的5个线程
 8 for i in range(5):
 9     t = threading.Thread(target=run)#第一个线程
10     t.start()
11     threads.append(t)
12 print('threads:',threads)
13 
14 for t in threads:#主线程循环等待所有子线程执行结束
15     t.join()#主线程等待子线程执行结束
16 end_time=time.time()
17 print('run_time..',end_time-start_time)

五、守护线程
  守护线程,就是只要主线程结束,那么子线程立即结束

 1 import threading,time
 2 def run():#主线程
 3     time.sleep(3)
 4     print('哈哈')
 5 
 6 for i in range(5):
 7     t = threading.Thread(target=run)
 8     t.setDaemon(True)#把子线程设置成为守护线程
 9     t.start()
10 print('运行完成')

六、多进程
多进程多用于处理CPU密集型任务

 1 import multiprocessing,threading
 2 def my():
 3     print('哈哈')
 4 
 5 #进程5个
 6   #每个进程下6个线程
 7 def run(num):
 8     for i in range(5):
 9         t = threading.Thread(target=my)
10         t.start()
11 
12 if __name__ =='__main__':#多进程必须要加上__name__,否则会报错
13     for i in range(5):
14         p = multiprocessing.Process(target=run,args=(6,))#启动一个进程
15         p.start()
16         p.join()

 

posted on 2018-12-24 14:28  搁浅小夕  阅读(186)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3