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

话说Python(六)小白的胜利

 
    “哈哈!知道我操作之王小白的厉害了吧!”
    每当周六晚上,小白总是要跟宿舍的弟兄挑几局魔兽。凭借着风骚的走位和猥琐的意识,小白总是笑道最后。这不,小白又一次取得了以一敌二的胜利。
   “主要是多线操作!”这是小白对自己胜利的总结。
    今天我们就要学习多线程,看看小白是怎样胜利的。
    首先我们要澄清的是Python的多线程并不是利用系统本身的多线程机制,而是基于Python解释器,实际在系统看来还是一个线程。在Python中,存在一个Global Interpreter Lock(GIL),即全局解释器锁,它的作用在于让同一时刻只能有一个线程对于python对象进行操作。所以Python的多线程无法充分利用多核CPU,甚至单核CPU,这可以说是解释语言的通病。有时可以通过创建多个进程(而不是线程),或者使用Jython版本来解决。
    多线程带来的缺点:1、代码编写难度加大,多线程之间的抢占容易产生错误,出现异常;2、线程之间的切换同样会加大CPU和内存的负担。
无论如何,多线程还是值得一学的,因为它有一个不可忽视的优点:执行速度快,切记不能滥用。多线程主要应用在I/O密集型的程序中,因为在输入输出函数会更多地调用内建的C级代码,而不是Python级代码。
我们要学习的模块是threading,而不是thread,因为threading更为高级。推荐使用继承threading.Thread类来创建线程。
hello world 线程版:
import threading
class WorkerThread(threading.Thread): #继承自Thread
def __init__(self):
threading.Thread.__init__(self) #继承Thread构造函数
def run(self): #重写run()函数
print("hello world!")
if __name__=="__main__":
myThread=WorkerThread() #创建对象
myThread.start() #start()方法会自动运行run()

调用start()方法后,线程就会自动运行,连续创建多个对象就会变成多线程。
    上文提到,多线程的一个缺点是对共享的数据抢占造成程序错误。Python提供了很多线程同步原语,如时间,锁等。“当这些选项存在时,最佳实践是转而关注于使用队列。相比较而言,队列更容易处理,并且可以使得线程编程更加安全,因为它们能够有效地传送单个线程对资源的所有


相关文档:

用Python提取文件夹下的特定扩展名的文件

                用Python提取文件夹下的特定扩展名的文件
      不知道什么时候,网闲着没用,挂了个linux的视屏教程,里面有很多个文件夹,有很多无关的文件。这对于像我没收藏垃圾文件癖好的人来说,简直是 ......

Python正则表达式

正则表达式是个魔鬼,也是个天使。在你没有掌握它之前,它是魔鬼,在你掌握它后,它是天使,但是,时
不时还是要跳出来,给你调皮捣蛋一番。


一个正则表达式就是由普通字符以及特殊字符组成的文字模式,该模式描述在查找文字主体时待
匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的 ......

python中%符号详解

%a 星期几的简写
%A 星期几的全称
%b 月分的简写
%B 月份的全称
%c 标准的日期的时间串
%C
年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F
年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名 ......

python读取目录下文件并生成日志

很长的一段代码,但很清楚。哈哈。
import os
from time import strftime
stamp=strftime("%Y-%m-%d %H:%M:%S")
logfile = 'F:\\test\\m-php-framework\\tmp\logs\\error_report.log'
path = 'F:\\test\\'
files = os.listdir(path)
bytes = 0
numfiles = 0
for f in files:
if f.startswith('t'): ......

Python 处理excel并转为table

使用xlrd

读取,xlrd的下载及安装可以参看:
Python
"xlrd" package for extracting data from Excel files
---------------------------------------------------------------------------------
#coding=utf-8
import xlrd
import os, types, datetime
#excel存放目录
dir = u'D:\\temp\\excel'
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号