Python线程基础
2017-05-08 21:51
274 查看
Python中使用线程有两种方式:函数,或者用类来包装线程对象;
函数方式:调用thread模块中的start_new_thread(function,args[,kwargs])函数来产生新的线程,不过这种方法要求此方法和线程运行的方法在同一个类(级别相同)中;
参数说明:
Function:线程函数
Args:传递给线程函数的参数,他必须是个tuple(元组)类型
Kwargs:可选参数
备注:此种方式要求定义线程的级别和启动线程的级别是一致的(启动线程的方法参数中需要方法名);
方式二:类继承threading.Thread,然后重写init()和run()方法
函数方式:调用thread模块中的start_new_thread(function,args[,kwargs])函数来产生新的线程,不过这种方法要求此方法和线程运行的方法在同一个类(级别相同)中;
参数说明:
Function:线程函数
Args:传递给线程函数的参数,他必须是个tuple(元组)类型
Kwargs:可选参数
#coding=utf-8 import thread; import time; def print_time(threadName,delay): count=0;#两个线程共享的是这同一个count while count<5: time.sleep(1); count+=1 print "%s: %s" % ( threadName, time.ctime(time.time()) ),"count=\t"+str(count); #创建两个线程 try: thread.start_new_thread(print_time,("thread_name___1",2)); thread.start_new_thread(print_time,("thread_name___2",3)); except BaseException as reason: print "error" while 1: pass
备注:此种方式要求定义线程的级别和启动线程的级别是一致的(启动线程的方法参数中需要方法名);
方式二:类继承threading.Thread,然后重写init()和run()方法
import time; import threading; exitFlag = 0 class myThread(threading.Thread): # 继承父类threading.Thread def __init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.counter = counter def run(self): # 把要执行的代码写到run函数里面 线程在创建后会直接运行run函数 print "Starting " + self.name print_time(self.name, self.counter, 5) print "Exiting " + self.name #这边表明了在python的一个类中,各个方法不能互相调用; def print_time(threadName, delay, counter): while counter:#当counter被减到0的时候退出循环, if exitFlag: threading.Thread.exit() time.sleep(delay) print "%s: %s" % (threadName, time.ctime(time.time())) counter -= 1 # 创建新线程 thread1 = myThread(1, "Thread-1", 1) thread2 = myThread(2, "Thread-2", 2) # 开启线程 thread1.start() thread2.start() print "Exiting Main Thread"#主线程直接运行结束
相关文章推荐
- Python线程基础
- python基础-线程创建方式
- python——进程线程、与协程基础概述
- Python基础 - 第九天 - paramiko模块、进程、线程
- python基础-信号量Semaphore(进程_线程)、事件Event(进程_线程)
- python 线程 基础
- python基础4(线程)
- Python基础-进程和线程
- Python基础:进程、线程、协程(1)
- python基础===进程,线程,协程的区别(转)
- Python线程基础
- python基础之线程、进程、协程
- python线程基础
- 进程和线程的基础知识——Python学习笔记11
- Python线程基础学习
- python开发_thread_线程基础
- python开发之thread线程基础实例入门
- Python-开发之路-线程基础
- python基础-守护进程、守护线程、守护非守护并行
- Python基础---线程