易截截图软件、单文件、免安装、纯绿色、仅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 3 写的命令行百度词典

今天是第二天自己看关于Python了,看见一个Python2写的百度词典,我也用Python 3 写了一个。真的很小巧,呵呵,很好的语言。
不知道怎么上传代码格式的,就上传文本了:
# -*- coding: utf8 -*-
import urllib.parse
import urllib.request
def search(word):
    #word = input("输入你要查询的 ......

python 获取本机ip

>>> from socket import socket, SOCK_DGRAM, AF_INET
>>> s = socket(AF_INET, SOCK_DGRAM)
>>> s.connect(('google.com', 0))
>>> s.getsockname()
('192.168.1.113', 43711) 
Linux:
import socket
import fcntl
import struct
def get_ip_address(ifname):
s = ......

用Python直接写UTF 8文本文件

当我们这样建立文件时
f =
file('x1.txt', 'w')
f.write(u'中文')
f.colse()

接结果应该是类似
    f.write(u'中文')
UnicodeEncodeError: 'ascii'
codec can't encode characters in position 0-16: ordinal not in
range(128)
要直接写 utf-8 文件怎么办呢?
import codecs
f = codecs. ......

python处理XML

基本上都是使用python来解析xml文件的。
比如我要将内容为
<?xml version="1.0" encoding="utf-8"?>
    <root>
        <book isbn="34909023">
            <author>
 &n ......

python中如何判断一个变量的数据类型?(原创)

import types
type(x) is types.IntType # 判断是否int 类型
type(x) is types.StringType #是否string类型
.........
--------------------------------------------------------
超级恶心的模式,不用记住types.StringType
import types
type(x) == types(1) # ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号