Python线程基础

Python中使用线程有两种方式:函数,或者用类来包装线程对象;
函数方式:调用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"#主线程直接运行结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值