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

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

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

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

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

 import threading,time
def run():#主线程
time.sleep(3)
print('哈哈') start_time=time.time()
threads=[]#存放启动的5个线程
for i in range(5):
t = threading.Thread(target=run)#第一个线程
t.start()
threads.append(t)
print('threads:',threads) for t in threads:#主线程循环等待所有子线程执行结束
t.join()#主线程等待子线程执行结束
end_time=time.time()
print('run_time..',end_time-start_time)

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

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

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

 import multiprocessing,threading
def my():
print('哈哈') #进程5个
#每个进程下6个线程
def run(num):
for i in range(5):
t = threading.Thread(target=my)
t.start() if __name__ =='__main__':#多进程必须要加上__name__,否则会报错
for i in range(5):
p = multiprocessing.Process(target=run,args=(6,))#启动一个进程
p.start()
p.join()

python--多线程多进程的更多相关文章

  1. Python多线程多进程那些事儿看这篇就够了~~

    自己以前也写过多线程,发现都是零零碎碎,这篇写写详细点,填一下GIL和Python多线程多进程的坑~ 总结下GIL的坑和python多线程多进程分别应用场景(IO密集.计算密集)以及具体实现的代码模块 ...

  2. Python多线程多进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  3. python学习笔记(十六)-Python多线程多进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  4. python多线程/多进程

    thread和threading的区别 threading相对与thread是更高级别的线程管理模块 thread和threading模块中的一些属性会有冲突 thread模块拥有的同步原因实际上只有 ...

  5. 多线程&多进程解析:Python、os、sys、Queue、multiprocessing、threading

    当涉及到操作系统的时候,免不了要使用os模块,有时还要用到sys模块. 设计到并行程序,一般开单独的进程,而不是线程,原因是python解释器的全局解释器锁GIL(global interpreter ...

  6. python多线程,多进程

    线程是公用内存,进程内存相互独立 python多线程只能是一个cpu,java可以将多个线程平均分配到其他cpu上 以核为单位,所以GIL(全局锁,保证线程安全,数据被安全读取)最小只能控制一个核,很 ...

  7. Python多线程和多进程谁更快?

    python多进程和多线程谁更快 python3.6 threading和multiprocessing 四核+三星250G-850-SSD 自从用多进程和多线程进行编程,一致没搞懂到底谁更快.网上很 ...

  8. 搞定python多线程和多进程

    1 概念梳理: 1.1 线程 1.1.1 什么是线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发 ...

  9. python多线程、多进程以及GIL

    多线程 使用threading模块创建线程 传入一个函数 这种方式是最基本的,即调用threading中的Thread类的构造函数,然后指定参数target=func,再使用返回的Thread的实例调 ...

  10. python多线程和多进程

    1 概念梳理: 1.1 线程 1.1.1 什么是线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发 ...

随机推荐

  1. C# List<T>排序

    list<string>排序.list<int>排序 strList = strList.OrderBy(o => double.Parse(o)).ToList(); ...

  2. Angular4 构建,部署,多环境

  3. sission的使用

    链接:https://pan.baidu.com/s/10B2V9g9OLmOY-9dKVoA15Q 提取码:fy7c 通过sission实现记录人数截图如下:

  4. Tensorflow object detection API ——环境搭建与测试

    1.开发环境搭建 ①.安装Anaconda 建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配 ...

  5. AbstractMethodError:

    AbstractMethodError: This java.lang.AbstractMethodError is usually thrown when we try to invoke the ...

  6. 如何在centos6.5中安装MySQL数据库

    huidaoli 东华理工大学信工IT网-项目1+1学习基地(www.ecit-it.com)

  7. quill富文本编辑器 API

    //1. 从第三个开始删除,删除4个 // console.log(this.quill.deleteText(2, 4)); // 12345678 1278 // 2.(返回对象)返回从第三个开始 ...

  8. 01: 腾讯云API-云服务器

    1.1 云服务器 1.腾讯云SDK使用举例 网址:https://cloud.tencent.com/document/sdk/Python #! /usr/bin/env python # -*- ...

  9. 初涉wheel 组

    入门 在一次处理su切换的问的时候出现一个问题, [cheng1@localhost ~]$ su cheng2 密码: su: 鉴定故障 [cheng1@localhost ~]$ 试过很多次, 也 ...

  10. 读 vue 源码一 (为什么this.message能够访问data里面的message)

    12月离职后,打算在年后再找工作了,最近陆陆续续的看了黄轶老师的vue源码解析,趁着还有几天过年时间记录一下. 目标:vue如何实现通过this.key,就能直接访问data,props,method ...