首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

[d]threading.thread能争夺共享的资源吗

2012-12-15 
[d]threading.thread会争夺共享的资源吗?本帖最后由 fibbery 于 2012-07-29 14:56:37 编辑我用threading.t

[d]threading.thread会争夺共享的资源吗?
本帖最后由 fibbery 于 2012-07-29 14:56:37 编辑 我用threading.thread写了两个类,这两个类需要公用某个资源块,这两个类分别生成一个对象(即有两个我自己写的线程在run了)。这两个线程会否像c/c++那样争夺/死锁等待共享的资源块吗?还是threading.thread本身已经做好了这方面的处理,不会出现争夺/死锁的现象的?

--------------------------
Double行动:
原帖分数:40
帖子加分:40

[最优解释]
资源块的资源如果不需要同步的话,直接使用就行了,不用多管,
如果需要进行同步,那么请使用互斥锁,信号量等机制,同时要考虑防止发生死锁
[其他解释]
貌似需要像 c/c++ 那样处理
[其他解释]
需要加锁, 百度一下吧, python手册不太好使的感觉.
[其他解释]

引用:
貌似需要像 c/c++ 那样处理


是这个么?

All of the objects provided by this module that have acquire() and release() methods can be used as context managers for a with statement. The acquire() method will be called when the block is entered, and release() will be called when the block is exited.

Currently, Lock, RLock, Condition, Semaphore, and BoundedSemaphore objects may be used as with statement context managers. For example:

import threading

some_rlock = threading.RLock()

with some_rlock:
    print "some_rlock is locked while this executes"

[其他解释]
引用:
貌似需要像 c/c++ 那样处理


没见其有什么协调机制耶。。能否贴个代码呢?
[其他解释]
引用:
资源块的资源如果不需要同步的话,直接使用就行了,不用多管,
如果需要进行同步,那么请使用互斥锁,信号量等机制,同时要考虑防止发生死锁


只读不写
[其他解释]
引用:
需要加锁, 百度一下吧, python手册不太好使的感觉.


利用eventlet库的协程不用加锁,是我根据手册和网上查的写出来总是不成功,有没哪位用过eventlet的?

热点排行