简单学习threading标准库
举个例子,打印 输出5个 cheer
#coding:utf-8
from threading import Thread
#导入多线程模块
from time import sleep
#导入时间模块(原因是多线程模块有时候因太快,而来个时间模块会使多线程不会乱掉)
def ThreadHandle() #定义一个多线程函数
print 'cheer'
if __name__ =='__main__': #可以不用定义主函数,作用是调用模块不执行下面内容
for i in range(5) #for循环1-5赋值给i,range(5)是一个数组
t = Thread(target=ThreadHandle) #创建多线程对象(for循环5次则会创建5次多线程对象,target=要执行函数的名称)
sleep(0.1)
t.start() #启动线程
使用多线程ping百度50次
#coding:utf-8
from threading import Thread
from time import sleep
from os import system
from time import time
#导入模块
def ThreadHandle():
sysytem(‘ping www.baidu.com’) #ping百度
now2 = time()
time1 = now2-now1
if __name__=='__main__':
now1 = time()
for i in range(50): #循环1-50
t = Thread(target=ThreadHandle) #创建主线程
sleep(0.1) #表示线程挂起时间
t.start() #开启线程
#从时间结果
多线程传入参数,并输出
#coding:utf-8
from threading import Thread
from time import sleep
def ThreadHandle(name): #定义函数(参数为name)
print 'Your name is ',name #打印
if __name__=='__main__': #定义主函数(标准格式)
for i in range(10): #for循环
t = Thread(target=ThreadHandle,args=('my blog',)) #定义多线程参数是要执行的函数,和传入的参数(只有一个参数要有逗号才是元组)
sleep(0.1)
t.start() #启动线程
实现多线程Server
扩展前面前面的python的功能
可以使多个客户端进行交互
from socket import *
from os import *
from threadming import Thread
#导入模块
def ThreadHand(): #定义主函数实现多线程Server
cmd = sock.recv(1024) #接收客户端的内容
if cmd =='exit': #判断是不是exit
sock.close()
break
result = popen(cmd).read()
sock.send(result)
s=socket(AF_INET,SOCK_STREAM) #创立套接字
s.bind('',6666) #绑定主机端口
s.listen
while True:
sock,addr = s.accept()
print 'Connected by ',addr
#接收两个返回一个socket,一个是连接的地址和端口
t = Thread(target=ThreadHandle,arge(sock,)) #创立多线程,传入sock参数
t.start()
笔记来自:
i春秋暴走python