1、线程是最小的执行单位,而进程中至少一个线程组;如果调度进程和线程,完全由操作系统决定,程序自己不能决定什么时候执行,执行多长时间

Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。

2、多进程:

在windows平台下,由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块

multiprocessing模块提供了一个Process类来代表一个进程对象,下面延时启动一个子进程并等待其结束:

3、python中os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程

# !/user/bin/env python
# -*- coding: utf-8 -*-
from multiprocessing import Process
import os
# 子进程要执行的代码
def run_proc(name):
print 'run child process %s (%s)...' % (name , os.getpid()) if __name__ == '__main__':
print 'Parent process %s.' % os.getpid()
p = Process(target=run_proc,args=('test',)) # 创建子进程时,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动;比创建进程fork()还要简单
print 'Process will start'
p.start()
p.join() # join()方法可以等待子进程结束后再继续往下运行,通常用于进程间的同步
print 'Precess end' aaarticlea/png;base64,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" alt="" />

4、Pool :如果要启用大量的子进程,可以用进程池的方式批量创建子进程

from multiprocessing import Pool
import os,time,random def long_time_task(name):
print 'Run task %s (%s)...' % (name,os.getpid())
start = time.time() # 返回当前时间的时间戳
time.sleep(random.random()*3)
end = time.time() # 返回当前时间的时间戳
print 'Task %s runs %0.2f seconds.' % (name,(end - start)) if __name__ == '__main__':
print 'Parent process %s.' % os.getpid()
p = Pool()
for i in range(5):
p.apply_async(long_time_task,args=(i,))
print 'Waiting for all subprocess done...'
p.close()
p.join()
print 'All subprocess done'
aaarticlea/png;base64,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" alt="" width="749" height="309" />

5、进程间的通信

Process之间肯定是需要通信的,操作系统提供了很多机制来实现进程间的通信。python的multiprocessing模块包装了底层的机制,提供了Queue、Pipes等多种方式来交换数据

已Queue为例,在父进程中创建两个子进程,一个往Queue里写数据,一个从Queue里读数据:

from multiprocessing import Process,Queue
import os,time,random
def write(q): # 写数据进程执行代码
for value in ['A','B','C']:
print 'put %s to queue...' % value
q.put(value)
time.sleep(random.random()) # random.random()生成0和1之间的随机符点数
def read(q): # 读数据进程执行代码
while True:
value = q.get(True)
print 'Get %s from queue.' % value
if __name__ == '__main__':
q = Queue() # 父进程创建Queue,并传给各个子进程
pw = Process(target=write,args=(q,))
pr = Process(target=read, args=(q,))
pw.start() # 启动子进程pw,写入
pr.start() # 启动子进程pr,读取
pw.join() # 等待pw结束
pr.terminate() # pr进程里是死循环,无法等待其结束,只能强行终止

aaarticlea/png;base64,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" alt="" />

进程总结:

在Unix/Linux下,可以使用fork()调用实现多进程。

要实现跨平台的多进程,可以使用multiprocessing模块。

进程间通信是通过QueuePipes等实现的。

===============================================================================================

1、线程 : 由于线程是操作系统直接支持的执行单元,因此高级语言都内置多线程的支持,python也不例外,并且python的线程是真正的Posix Thread,而不是模拟出来的线程

Python的标准库中提供了两个模块:thread 和 threading ,thread是低级模块,threading是高级模块对thread进行了封装,绝大多数情况下,我们只需要使用threading这个高级模块

2、启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始执行:

# !/user/bin/env python
# -*- coding: utf-8 -*-
# 线程
import time,threading
def loop():
print 'thread %s is runniing...' % threading.current_thread().name # 打印当前线程的名称
n =
while n < 5:
n = n + 1
print 'thread %s >>> %s' % (threading.current_thread().name,n)
time.sleep(1)
print 'thread %s ended' % threading.current_thread().name
print 'thread %s is running...' % threading.current_thread().name # 打印当前的主线程
t = threading.Thread(target=loop,name='LoopThread')
t.start()
t.join()
print 'thread %s ended.' % threading.current_thread().name

aaarticlea/png;base64,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" alt="" width="658" height="212" />

  由于任何线程默认就会启动一个线程,我们把该线程称为主线程,主线程又可以启动新的线程,python的threading模块有个current_thread()函数,返回当前线程的实例。主线程实例的名字叫MainThread,

子线程的名字在创建时指定,我们用LoopThread命名子线程。名字仅在打印时用来显示用。如果不给子线程起名字,python自动给线程名为Thread-1,Thread-2.....

2、Lock

多线程和多进程最大的不同在于:多进程中,同一个变量各自有一份拷贝存在于每个进程中,互不影响;多进程中,所有变量都由所有线程共享,所以任何一个变量都可以被任何一个线程修改,因此线程之间共享数据最大危险在于多个线程

同时改一个变量,把内容改乱了。此时就用到了Lock

import time,threading
balance = 0 # 假定是银行存款
lock = threading.Lock()
def change_it(n): # 该函数实现 现存后取,结果应该为0
global balance
balance = balance + n
balance = balance - n
def run_thread(n):
for i in range(1000):
lock.acquire() # 先获取锁,锁定方法acquire()
try:
change_it(n) # 放心地改
finally:
lock.release() # 改完后一定要释放锁
t1 = threading.Thread(target=run_thread,args=(5,))
t2 = threading.Thread(target=run_thread,args=(8,))
t1.start()
t2.start()
t1.join()
t2.join()
print balance

运行结果:0  当不加锁时,打印结果可能为负值,银行卡不应有负值;是因为多线程共享一个数据造成;加锁后结果一定为0;存n取出n

分析:当多个线程同时执行lock.acquire()时,只有一个线程能成功获取锁,然后继续执行代码,其他线程就继续等待直到获得锁为止

获得锁的线程用完后一定要释放锁,否则哪些苦苦等待锁的线程将永远等待下去,称为死线程。所以用try...finally...来确保锁一定会被释放

锁的好处就是确保了某段关键代码只能由一个线程从头到尾完整地执行,坏处当然也很多,首先是阻止了多线程并发执行,包含锁的某段代码实际上只能以单线程模 式执行,效率就大大地下降了。其次,由于可以存在多个锁,不同的线程持有不同的锁,并试图获取对方持有的锁时,可能会造成死锁,导致多个线程全部挂起,既 不能执行,

也无法结束,只能靠操作系统强制终止。

------------------------------------------------------------------------

1、ThreadLocal:当工作于多线程中的对象使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程分配一个独立的变量副本。每个线程独立改变自己的副本,不影响其他线程对应的变量副本

不同于线程同步:解决一个变量同一时刻被多个线程共享的问题(共享一个变量)

ThreadLocal:使得一个变量在多个线程中各自拥有自己的副本(实现资源的隔离)

进程、线程、ThreadLlocal的更多相关文章

  1. python学习笔记-进程线程

    1.什么是进程(process)? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述 ...

  2. 获取系统中所有进程&线程信息

    读书笔记--[计算机病毒解密与对抗] 目录: 遍历进程&线程程序 终止进程 获取进程信息 获取进程内模块信息 获取进程命令行参数 代码运行环境:Win7 x64 VS2012 Update3 ...

  3. [skill] 进程 线程

    在业务逻辑上: 进程线程没有区别. 在系统资源上: 进程拥有自己的地址空间.线程拥有自己的堆栈和临时变量,与其他线程共享地址空间. 在通信代价上: 线程间通信代价更低,实现更方便.进程通信相对开销比较 ...

  4. pyhon——进程线程、与协程基础概述

    一直以来写博客都是实用主义者,只写用法,没信心写原理,但是每一次写作业的过程都有一种掘地三尺的感觉,终于,写博客困难症重症患者经历了漫长的思想斗争,还是决定把从网上淘到的各种杂货和自己的总结放在一起, ...

  5. android 进程/线程管理(一)----消息机制的框架

    一:android 进程和线程 进程是程序运行的一个实例.android通过4大主件,弱化了进程的概念,尤其是在app层面,基本不需要关系进程间的通信等问题. 但是程序的本质没有变,尤其是多任务系统, ...

  6. android 进程/线程管理(二)----关于线程的迷思

    一:进程和线程的由来 进程是计算机科技发展的过程的产物. 最早计算机发明出来,是为了解决数学计算而发明的.每解决一个问题,就要打纸带,也就是打点. 后来人们发现可以批量的设置命令,由计算机读取这些命令 ...

  7. android 进程/线程管理(三)----Thread,Looper / HandlerThread / IntentService

    Thread,Looper的组合是非常常见的组合方式. Looper可以是和线程绑定的,或者是main looper的一个引用. 下面看看具体app层的使用. 首先定义thread: package ...

  8. android 进程/线程管理(四)续----消息机制的思考(自定义消息机制)

    继续分析handler 和looper 先看看handler的 public void dispatchMessage(Message msg) { if (msg.callback != null) ...

  9. android 进程/线程管理(四)----消息机制的思考(自定义消息机制)

    关于android消息机制 已经写了3篇文章了,想要结束这个系列,总觉得少了点什么? 于是我就在想,android为什么要这个设计消息机制,使用消息机制是现在操作系统基本都会有的特点. 可是andro ...

  10. windows进程/线程创建过程 --- windows操作系统学习

    有了之前的对进程和线程对象的学习的铺垫后,我们现在可以开始学习windows下的进程创建过程了,我将尝试着从源代码的层次来分析在windows下创建一个进程都要涉及到哪些步骤,都要涉及到哪些数据结构. ...

随机推荐

  1. zabbix监控Mariadb数据库

    1.介绍: zabbix自带的MySQL插件来监控mysql数据库,但是太过简陋,基本没有啥作用,所以需要做更详细的监控,而percona就有这个详细监控的模版以及脚本,正好拿过来用. percona ...

  2. a各种状态

    hover   设置对象在其鼠标悬停时的样式表属性 active  设置对象在被用户激活(在鼠标点击与释放之间发生的事件)时的样式表属性.link  设置a对象在未被访问前的样式表属性.visited ...

  3. jdbc驱动jar导入eclipse

    在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是 打开eclipse 1.右击要导入jar包的项目,点properties 2.左边选择java ...

  4. Service degrade

    服务降级:主要是针对非正常情况下的应急服务措施;比如电商平台,在针对618.双11等高峰情形下采用部分服务不出现或者延时出现的情形. 为什么是非正常情况下呢,比如我要出差,如果经常出差的话,要带的衣服 ...

  5. 大数据架构之:Storm

         Storm是一个免费开源.分布式.高容错的实时计算系统,Twitter开发贡献给社区的.Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求. Storm经常用 ...

  6. JavaWeb Session

    1. Session概述 1.1. 什么是Session Session一般译为会话,是解决Http协议的无状态问题的方案,可以将一次会话中的数据存储在服务器端的内存中,保证在下一次的会话中可以使用. ...

  7. Django 组合索引

    TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join( ...

  8. USB引脚及定义

    USB 2.0 USB接口定义: USB引脚定义: 针脚 名称 说明 接线颜色 1 VCC +5V电压 红色 2 D- 数据线负极 白色 3 D+ 数据线正极 绿色 4 GND 接地 黑色   Min ...

  9. Android 开发人员必须掌握的 10 个开发工具

    Android 开发人员必须掌握的 10 个开发工具 Android SDK 本身包含很多帮助开发人员设计.开发.测试和发布 Android 应用的工具,在本文中,我们将讨论 10 个最常用的工具. ...

  10. eclipse异常关了,tomcat如何关

    eclipse异常关了,tomcat如何关 ? 1.bin文件夹下面有的shutdown.bat.双击即可! 2.在任务管理器里面关闭,看到javaw.exe关闭也行.