易截截图软件、单文件、免安装、纯绿色、仅160KB

Python 线程同步

多个执行线程经常要共享数据,如果仅仅读取共享数据还好,但是如果多个线程要修改共享数据的话就可能出现无法预料的结果。
    假如两个线程对象t1
和t2
都要对数值num=0
进行增1运算,那么t1
和t2
都各对num
修改10
次的话,那么num
最终的结果应该为20
。但是如果当t1
取得num
的值时(假如此时num
为0
),系统把t1
调度为“sleeping
”状态,而此时t2
转换为“running
”状态,此时t2
获得的num
的值也为0
,然后他把num+1
的值1
赋给num
。系统又把t2
转化为“sleeping
”状态,t1
为“running
”状态,由于t1
已经得到num
值为0
,所以他也把num+1
的值赋给了num
为1
。本来是2
次增1
运行,结果却是num
只增了1
次。类似这样的情况在多线程同时执行的时候是有可能发生的。所以为了防止这类情况的出现就要使用线程同步机制。
    最简单的同步机制就是“锁”
    锁对象用threading.RLock
类创建
    mylock = threading.RLock()
    如何使用锁来同步线程呢?线程可以使用锁的acquire()
(获得)方法,这样锁就进入“locked
”状态。每次只有一个线程可以获得锁。如果当另一个线程试图获得这个锁的时候,就会被系统变为“blocked
”状态,直到那个拥有锁的线程调用锁的release()
(释放)方法,这样锁就会进入“unlocked
”状态。“blocked
”状态的线程就会收到一个通知,并有权利获得锁。如果多个线程处于“blocked
”状态,所有线程都会先解除“blocked
”状态,然后系统选择一个线程来获得锁,其他的线程继续沉默(“blocked
”)。
import threading
mylock = threading.RLock()
class mythread(threading.Thread)
    ...
    def run(self ...):
        ...     #此处 不可以
放置修改共享数据的代码
        mylock.acquire()
        ...     #此处 可以
放置修改共享数据的代码
        mylock.release()
   


相关文档:

python Eric 的使用

        最近使用python过程中,python界面的编程工具GTK-Python,但是界面的美观性不如Qt-Creator中的Qt-Designer,无法实现设计是视图绘制,有点让人失望。
        网上发现有人介绍python Eric IDE,比较好奇,安装上看看吧:
  &nb ......

第一个python小程序

闲的无聊就看了一点关于python的基础知识,当时也不知道python和perl之间争论的这么的激烈(主要是当时不知道perl这个语言的性质),所以直接就看了python,下面是我的第一个用python写的小程序源码,希望朋友们多多指教,有什么问题大家尽管指正,在此先谢谢大家了。
[code]
#!/usr/bin/python
import sys, os, re
impor ......

Python MySqlDB 增删改数据库


下载安装MySQLdb
http://sourceforge.net/projects/mysql-python/ 好像没看到windows版本for python2.6的下载,网上搜索到一个
http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe
安装后import MySQLdb会出现 DeprecationWarning: the sets module is deprecated 这样一个警告,google之
......

关于python unicode的实验

实验环境:windows xp + vim
文件:test.py。编码:ansi
我们的目标操作test.py中保存的非英文字母。
文件头的#encoding=utf8/gbk,这个是用来说明源文件的硬盘编码以便python识别[4]。
----------------------------------------------
输入:
x = '中文'
输出: 编译失败
编译时需要知道‘中文’的硬盘编 ......

python字符串使用总结



来源:
作者:
灵剑
1.python 字符串通常有单引号('...')、双引号(...)、三引号(...)或('''...''')包围,三引号包含的字符串可由多行组成,一般可表示大段的叙述性字符串。在使用时基本没有差别,

1.python
字符串通常有单引号('...')、双引号("...")、三引号("""... ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号