#Lock.py
from multiprocessing import Process,Lock
import os def f(l,i):
l.acquire()
print('hello world %d and Ospid is %s...' %( i,os.getpid()))
l.release()
if __name__=='__main__':
lock = Lock()
for num in range(10):
Process(target=f,args=(lock,num)).start()

有Lock。

结果

 hello world 3 and Ospid is 4852...
hello world 2 and Ospid is 540...
hello world 0 and Ospid is 4160...
hello world 1 and Ospid is 948...
hello world 4 and Ospid is 5272...
hello world 6 and Ospid is 3100...
hello world 7 and Ospid is 3364...
hello world 8 and Ospid is 924...
hello world 9 and Ospid is 5196...
hello world 5 and Ospid is 5460...

以下是无Lock

 #copy.py
__author__ = 'liunnis'
from multiprocessing import Process,Lock
import os def f(l,i): print('hello world %d and Ospid is %s...' %( i,os.getpid())) if __name__=='__main__':
lock = Lock()
for num in range(10):
p = Process(target=f,args=(lock,num))
p.start()
# p.join()

结果:

 hello world 3 and Ospid is 944...
hello world 1 and Ospid is 4156...
hello world 8 and Ospid is 2136...
hello world 5 and Ospid is 3764...
hello world 6 and Ospid is 4876...
hello world 7 and Ospid is 4976...
hello world 2 and Ospid is 2640...
hello world 0 and Ospid is 1404...
hello world 9 and Ospid is 5748...
hello world 4 and Ospid is 4032..

python中的Lock的更多相关文章

  1. Python 中的Lock与RLock

    摘要 由于多线程共享进程的资源和地址空间,因此,在对这些公共资源进行操作时,为了防止这些公共资源出现异常的结果,必须考虑线程的同步和互斥问题. 为什么加锁:1.用于非线程安全, 2.控制一段代码,确保 ...

  2. Python中的多线程编程,线程安全与锁(一)

    1. 多线程编程与线程安全相关重要概念 在我的上篇博文 聊聊Python中的GIL 中,我们熟悉了几个特别重要的概念:GIL,线程,进程, 线程安全,原子操作. 以下是简单回顾,详细介绍请直接看聊聊P ...

  3. Python进阶(3)_进程与线程中的lock(线程中互斥锁、递归锁、信号量、Event对象、队列queue)

    1.同步锁 (Lock) 当全局资源(counter)被抢占的情况,问题产生的原因就是没有控制多个线程对同一资源的访问,对数据造成破坏,使得线程运行的结果不可预期.这种现象称为“线程不安全”.在开发过 ...

  4. python中协程

    在引出协成概念之前先说说python的进程和线程. 进程: 进程是正在执行程序实例.执行程序的过程中,内核会讲程序代码载入虚拟内存,为程序变量分配空间,建立 bookkeeping 数据结构,来记录与 ...

  5. 线程安全及Python中的GIL

    线程安全及Python中的GIL 本博客所有内容采用 Creative Commons Licenses 许可使用. 引用本内容时,请保留 朱涛, 出处 ,并且 非商业 . 点击 订阅 来订阅本博客. ...

  6. Python中的threading

    Python中的threading RLock--重入锁 RLock在Python中的实现是对Lock的封装,具体在类中维护了一个重入次数的变量.一旦一个线程获得一个RLock,该线程再次要求获得该锁 ...

  7. python中的进程、线程(threading、multiprocessing、Queue、subprocess)

    Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CP ...

  8. Python 中的进程、线程、协程、同步、异步、回调

    进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 一.上下文切换技术 简述 在进一步之前,让我们先回顾一下各种上下文切换技术. 不过首先说 ...

  9. python中的多线程【转】

    转载自: http://c4fun.cn/blog/2014/05/06/python-threading/ python中关于多线程的操作可以使用thread和threading模块来实现,其中th ...

随机推荐

  1. KnockoutJS Select 标签 Options绑定

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. 撩课-Java每天5道面试题第22天

    141.Spring AOP是什么? AOP:面向切面编程 AOP技术利用一种称为“横切”的技术, 解剖封装的对象内部, 并将那些影响了多个类的公共行为 封装到一个可重用模块, 这样就能减少系统的重复 ...

  3. TCP/IP Socket通信demo

    一个实例通过client端和server端通讯 客户端发送:“我是客户端,请多关照” 服务端回复:“收到来自于"+s.getInetAddress().getHostName()+" ...

  4. 手把手教你写一个RPC

    1.1 RPC 是什么 定义:RPC(Remote Procedure Call Protocol)--远程过程调用协议 ,RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数 ...

  5. PowerDesigner16使用方法

    网上下载一个破解版的PowerDesigner https://www.cnblogs.com/longshiyVip/p/4643871.html 1.新建一个Physical Data Model ...

  6. OpenStack IceHouse 部署 - 3 - 控制节点部署

    Mysql部署配置  安装 安装mysql,mysql的python绑定 apt-get install mysql-server 安装过程中会要求设定mysql的root账户的密码,这里假定设为my ...

  7. async await的使用

    var sleep = function (time) { return new Promise(function (resolve, reject) { setTimeout(function () ...

  8. 洛谷P3939 数颜色(二分 vector)

    题意 题目链接 Sol 直接拿vector维护每种颜色的出现位置,然后二分一下. #include<bits/stdc++.h> using namespace std; const in ...

  9. BZOJ4650: [Noi2016]优秀的拆分(hash 调和级数)

    题意 题目链接 Sol NOI的题都这么良心么.. 先交个\(n^4\)暴力 => 75 hash优化一下 => 90 然后\(90\)到\(100\)分之间至少差了\(10\)难度台阶= ...

  10. MySQL5.5登陆

    通过cmd登陆 mysql -h localhost -P 3306 -u root -p123456 h后面跟的是域名或IP地址:大写的P后面跟的是端口号:u后面跟的是用户名:小写的p后面跟的是密码 ...