Tag Archives: 线程安全

关于gevent的微线程“eventlet”同步问题

理论上讲,Python是不存在线程安全问题的,由于GIT么,但是这是有前提的:sleep,I/O导致的wait都可能会引发线程安全隐患。

同理,gevent是基于事件驱动模型的,就不太可能是线程安全的。

gevent.coros.Semaphore提供了信号量的功能,可以是n个哦!

semaphore.acquire() -> 获取“锁”
semaphore.release() -> 释放“锁”

gevent的文档写的真简介啊,于是测试了个基本的同步方法:同[……]

继续阅读

HttpClient多线程

转载并整理自:HttpClient Theading

简介
这篇文章概括了怎样在多线程环境下安全的使用HttpClient。
MultiThreadedHttpConnectionManager

在HttpClient中使用多线程的一个主要原因是可以一次执行多个方法。在执行期间,每一个方法都使用一个HttpConnection实例。由于在同一时间多个连接只能安全地用于单一线程和方法和有限的资源,我们就必须确保连接分配给正确的方法。而MultiThreadedHttpConnect[……]

继续阅读

Java Concurrency in Practice 读书笔记 第四章

第四章  组成(线程安全的)对象
4.1  设计线程安全的类
设计一个线程安全的类包含如下准则:

1、识别出哪些变量将改变类的状态

2、识别出约束状态变量的不变条件

3、建立起规则,用于管理并发访问状态的状态

如果一个对象的field都是由基本数据类型(int long等)组成的,则所有这些field就构成了对象的全部状态。

如果对象的field中还包含引用,则对象状态还要包括这些引用变量中的隐含数据。例如LinkedList中的Node。

为了方便后人阅[……]

继续阅读