pythonthread锁对象

简介:

#!/usr/bin/env python


import thread

from time import sleep, ctime


loops = [4,2]


def loop(nloop, nsec, lock):

print 'start loop', nloop, 'at:', ctime()打印开始nloop 创建时间

sleep(nsec)休眠时间

print 'loop', nloop, 'done at:', ctime()打印结束nloop 创建时间

lock.release()释放lock锁


def main():定义main()函数

print 'starting at:', ctime()打印开始 创建时间

locks = []定义locks列表

nloops = range(len(loops))nloops = [0, 1]


for i in nloops:循环nloops

lock = thread.allocate_lock()定义lock = 分配一个LockType 类型的锁对象

lock.acquire()获取lock 尝试获取锁对象

locks.append(lock)把获取的lock放到locks列表里面


for i in nloops:

thread.start_new_thread(loop, (i, loops[i], locks[i]))通过函数loop创建线程,分别传0 4 locks[0],然后执行


for i in nloops:循环nloops

while locks[i].locked(): pass如果获取了锁对象 执行站位


print 'all DONE at:', ctime()打印all done at 创建时间


if __name__ == '__main__':

main()





[root@localhost python]# ./mtsleep2.py

starting at: Sun Sep 15 07:17:04 2013

start loop 1 at: Sun Sep 15 07:17:04 2013

start loop 0 at: Sun Sep 15 07:17:04 2013

loop 1 done at: Sun Sep 15 07:17:06 2013

loop 0 done at: Sun Sep 15 07:17:08 2013

all DONE at: Sun Sep 15 07:17:08 2013



本文转自 freeterman 51CTO博客,原文链接:http://blog.51cto.com/myunix/1297282,如需转载请自行联系原作者

相关文章
|
27天前
|
Java
锁对象
锁对象
41 1
|
4月前
|
SQL 数据库 索引
锁的类型-
锁的类型-
35 0
|
7月前
|
Java
加锁和释放锁的原理
当方法执行完后或者抛出异常后,都会释放锁
36 0
|
8月前
|
JSON 算法 安全
全局锁,锁住怎么办???
全局锁,锁住怎么办???
|
9月前
|
SQL 数据库 索引
锁的类型
所谓封锁,就是一个事务可向系统提出请求,对被操作的数据加锁(Lock)。其他事务必须等到此事务解锁(Unlock)之后才能访问该数据。从而,在多个用于并发访问数据库时,确保不互相干扰,可锁定的单位是:行、页、表、盘区和数据库。
111 1
|
关系型数据库 索引
上手隐式锁,显式锁
上手隐式锁,显式锁
上手隐式锁,显式锁
方法锁、对象锁、类锁的意义和区别
方法锁、对象锁、类锁的意义和区别
|
安全 Java
同步代码块、同步方法解决数据安全问题、线程安全的类及Lock锁
同步代码块、同步方法解决数据安全问题、线程安全的类及Lock锁的简单示例
86 1
同步代码块、同步方法解决数据安全问题、线程安全的类及Lock锁
|
设计模式 安全 算法
Java多线程(二)、线程的生命周期、线程的同步、Synchronized的使用方法、同步代码块、同步方法、同步机制中的锁、同步的范围、Lock(锁、不会释放锁的操作、单例设计模式之懒汉式(线程安全)
Java多线程(二)、线程的生命周期、线程的同步、Synchronized的使用方法、同步代码块、同步方法、同步机制中的锁、同步的范围、Lock(锁、不会释放锁的操作、单例设计模式之懒汉式(线程安全)
Java多线程(二)、线程的生命周期、线程的同步、Synchronized的使用方法、同步代码块、同步方法、同步机制中的锁、同步的范围、Lock(锁、不会释放锁的操作、单例设计模式之懒汉式(线程安全)