python threading之Condition

2015年7月15日 没有评论

Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一个条件变量,然后判断一些条件。如果条件不满足则wait;如果条件满足,进行一些处理改变条件后,通过notify方法通知其他线程,其他处于wait状态的线程接到通知后会重新判断条件。不断的重复这一过程,从而解决复杂的同步问题。

thread-condition

除了上面画的acquire方法、 release方法、notify方法、wait方法外还有noti[......]

Read more

python threading之死锁和可重入锁

2015年7月14日 没有评论

一、死锁

简单来说,死锁是一个资源被多次调用,而多次调用方都未能释放该资源就会造成死锁,这里结合例子说明下两种常见的死锁情况。

1、迭代死锁

该情况是一个线程“迭代”请求同一个资源,直接就会造成死锁:

import threading
import time
class MyThread(threading.Thread):
    def run(self):
        global num
        time.sleep(1)
        if mutex.acquire(1):[......]

Read more

python threading之互斥锁

2015年7月13日 没有评论

python threading模块有两类锁:互斥锁(threading.Lock )和可重用锁(threading.RLock)。两者的用法基本相同,具体如下:

lock = threading.Lock()
lock.acquire()
dosomething……
lock.release()

RLock的用法是将threading.Lock()修改为threading.RLock()。便于理解,先来段代码:

[root@361way lock]# cat lock1.py
#!/usr/bin/env python
# c[......]

Read more

为SuSE系统实现python tree

2015年7月10日 没有评论

centos/rhel下的tree命令非常好用,不过在SuSE下发现竟然没有该包,在SuSE的ISO镜像中也确认不存在该包 ,但是有的时候有想一目了解目录下的文件目录结构,所以就想到通过python实现一个。不过我这个比较懒,习惯先网上找下,能找到的话何必自己再去重复做无用功呢?还真找到了一个,代码如下:

#! /usr/bin/env python
# tree.py
# Written by Doug Dahms
# from www.361way.com
# Prints the tree structure for the path specified[......]

Read more

SuSE下zypper源配置

2015年7月4日 没有评论

AKCMS的nginx伪静态规则

2015年7月2日 没有评论

python PAM30 IE操作模块

2015年7月1日 没有评论

could not open session 解决办法

2015年6月24日 没有评论

股票量化分析(二)PE和流通市值

2015年6月21日 没有评论

股票量化分析(一)获取A股列表

2015年6月20日 没有评论