美文网首页
​Python 多进程大全

​Python 多进程大全

作者: 有用教育 | 来源:发表于2019-08-20 17:06 被阅读0次

开始学习Python线程

Python中使用线程有两种方式:函数或者用类来包装线程对象。

函数式:调用thread模块中的start_new_thread()函数来产生新线程。语法如下:

thread.start_new_thread(function,args[, kwargs])

参数说明:

function - 线程函数。

args - 传递给线程函数的参数,他必须是个tuple类型。

kwargs - 可选参数。

importthreadimporttime​​# 为线程定义一个函数defprint_time( threadName, delay):count =0whilecount <5:      time.sleep(delay)count +=1print("%s: %s"% ( threadName, time.ctime(time.time())))​​# 创建两个线程try:thread.start_new_thread( print_time, ("Thread-1",2, ) )thread.start_new_thread( print_time, ("Thread-2",4, ) )except:print("Error: unable to start thread")​​while1:pass

Thread-1:ThuJan22 15:42:172009Thread-1:ThuJan22 15:42:192009Thread-2:ThuJan22 15:42:192009Thread-1:ThuJan22 15:42:212009Thread-2:ThuJan22 15:42:232009Thread-1:ThuJan22 15:42:232009Thread-1:ThuJan22 15:42:252009Thread-2:ThuJan22 15:42:272009Thread-2:ThuJan22 15:42:312009Thread-2:ThuJan22 15:42:352009

线程的结束一般依靠线程函数的自然结束;也可以在线程函数中调用thread.exit(),他抛出SystemExit exception,达到退出线程的目的。

1

Python通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。

thread 模块提供的其他方法:

threading.currentThread(): 返回当前的线程变量。

threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。

threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

除了使用方法外,线程模块同样提供了Thread类来处理线程,Thread类提供了以下方法:

run():用以表示线程活动的方法。

start():启动线程活动。

join([time]):等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。

isAlive():返回线程是否活动的。

getName():返回线程名。

setName():设置线程名。

使用Threading模块创建线程

使用Threading模块创建线程,直接从threading.Thread继承,然后重写__init__方法和run方法:

import threadingimport time​exitFlag =0​classmyThread(threading.Thread):#继承父类threading.Threaddef__init__(self, threadID, name, counter):threading.Thread.__init__(self)self.threadID = threadIDself.name = nameself.counter = counterdefrun(self):#把要执行的代码写到run函数里面 线程在创建后会直接运行run函数 print ("Starting "+self.name)print_time(self.name,self.counter,5)print ("Exiting "+self.name)​defprint_time(threadName, delay, counter):whilecounter:ifexitFlag:            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")

输出

StartingThread-1StartingThread-2ExitingMainThreadThread-1:ThuMar21 09:10:032013Thread-1:ThuMar21 09:10:042013Thread-2:ThuMar21 09:10:042013Thread-1:ThuMar21 09:10:052013Thread-1:ThuMar21 09:10:062013Thread-2:ThuMar21 09:10:062013Thread-1:ThuMar21 09:10:072013ExitingThread-1Thread-2:ThuMar21 09:10:082013Thread-2:ThuMar21 09:10:102013Thread-2:ThuMar21 09:10:122013ExitingThread-2​

相关文章

  • ​Python 多进程大全

    开始学习Python线程 Python中使用线程有两种方式:函数或者用类来包装线程对象。 函数式:调用thread...

  • Python-04

    参考 : 庞雪峰Python教程 Github-Python资源大全 Python中文资源大全 一、Python ...

  • Python-05

    参考 : 庞雪峰Python教程 Github-Python资源大全 Python中文资源大全 一、切片 直接上代...

  • Python-03

    第三天继续加油! 参考 : 庞雪峰Python教程 Github-Python资源大全 Python中文资源大全 ...

  • Android 进程保活招式大全

    Android 进程保活招式大全 Processes and Threads

  • Python time、进程、线程、协程(异步IO)

    Python既支持多进程,又支持多线程 time 多进程 multiprocessing 通常在计算密集型时使用多...

  • Python-01

    Python开始了,哈哈 参考: 庞雪峰Python教程 Github-Python资源大全 Python中文资源...

  • linux vim常用操作

    进程 查看python进程 ps -ef | grep python 查看进程详细信息 先执行cd /proc/{...

  • Python札记52_进程和线程2

    在之前的札记Python札记50_进程和线程1中介绍了进程、线程和子进程以及多进程的相关知识,本札记中重点介绍多线...

  • Python多进程

    Python多进程 Python中进程创建方式有两种: fork:使用Python提供的os模块。 Python在...

网友评论

      本文标题:​Python 多进程大全

      本文链接:https://www.haomeiwen.com/subject/ywkssctx.html