`
剑锋凛冽
  • 浏览: 73543 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Python多线程之start_new_thread

 
阅读更多

#coding=gbk
#Python中的线程处理
'''
Python中对多线程有两种启动方法:
一种是thread模块的start_new_thread方法,在线程中运行一个函数,但获得函数返回值极为困难,Python官方不推荐
另一种是集成threading模块的Thread类,然后重写run方法,类似于Java的Runnable接口定义,灵活性较高
'''
print "=======================thread.start_new_thread启动线程============="
import thread
#Python的线程sleep方法并不是在thread模块中,反而是在time模块下
import time
def inthread(no,interval):
	count=0
	while count<10:
		print "Thread-%d,休眠间隔:%d,current Time:%s"%(no,interval,time.ctime())
		#使当前线程休眠指定时间,interval为浮点型的秒数,不同于Java中的整形毫秒数
		time.sleep(interval)
		#Python不像大多数高级语言一样支持++操作符,只能用+=实现
		count+=1
	else:
		print "Thread-%d is over"%no
		#可以等待线程被PVM回收,或主动调用exit或exit_thread方法结束线程
		thread.exit_thread()
#使用start_new_thread函数可以简单的启动一个线程,第一个参数指定线程中执行的函数,第二个参数为元组型的传递给指定函数的参数值
thread.start_new_thread(inthread,(1,2))
	#线程执行时必须添加这一行,并且sleep的时间必须足够使线程结束,如本例
	#如果休眠时间改为20,将可能会抛出异常
time.sleep(30)
'''
使用这种方法启动线程时,有可能出现异常Unhandled exception in thread started by 
Error in sys.excepthook:

Original exception was:
解决:启动线程之后,必须调用time.sleep休眠足够长的时间,使主线程等待所有子线程返回结果,如果主线程比子线程早结束,就会抛出这个异常
具体的跟Python的多线程机制有关,参见http://bestchenwu.iteye.com/blog/1063401
'''
 
分享到:
评论

相关推荐

    Python 多线程的实例详解

    Python 多线程的实例详解 一)线程基础 1、创建线程: thread模块提供了start_new_thread函数,用以创建线程。start_new_thread函数成功创建后还可以对其进行操作。 其函数原型: start_new_thread(function,...

    探寻python多线程ctrl+c退出问题解决方案

    经常会遇到下述问题:很多io busy的应用采取多线程的方式来解决,但这时候会发现python命令行不响应ctrl-c 了,而对应的java代码则没有问题: 复制代码 代码如下: public class Test {   public static void main...

    python多线程并发及测试框架案例

    这篇文章主要介绍了python多线程并发及测试框架案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、循环创建多个线程,并通过循环启动执行 import ...

    Python threading多线程编程实例

    Python 的多线程有两种实现方法: 函数,线程类 1.函数 调用 thread 模块中的 start_new_thread() 函数来创建线程,以线程函数的形式告诉线程该做什么 复制代码 代码如下: # -*- coding: utf-8 -*- import thread ...

    Python多线程编程之多线程加锁操作示例

    本文实例讲述了Python多线程编程之多线程加锁操作。分享给大家供大家参考,具体如下: Python语言本身是支持多线程的,不像PHP语言。 下面的例子是多个线程做同一批任务,任务总是有task_num个,每次线程做一个任务...

    Python多线程实例教程

    在早期的Python多线程实现中,采用了thread模块。例如:  from time import ctime,sleep from thread import start_new_thread def loop1(): print enter loop1:,ctime(); sleep(3); print leave loop1

    python多线程分块读取文件

    本文实例为大家分享了python多线程分块读取文件的具体代码,供大家参考,具体内容如下 # _*_coding:utf-8_*_ import time, threading, ConfigParser ''' Reader类,继承threading.Thread @__init__方法初始化 @run...

    Python语言基础:创建线程.pptx

    多线程是加速程序运算的有效方法,在Python中多线程操作使用“threading”模块。 import threading def thread_job(): print('当前线程个数:%s'%threading.active_count()) print('当前线程信息:%s'%threading....

    Python中多线程的创建及基本调用方法

    1. 多线程的作用 简而言之,多线程是并行...start_new_thread(function, args kwargs=None) 产生一个新的线程来运行给定函数 allocate_lock() 分配一个LockType类型的锁对象 exit() 让线程退出 acquire(wait=None) 尝

    python多线程DAY04.txt

    解决了多个进程或者线程对共享资源的争夺 Event e.set e.clear e.wait Lock lock.acquire() lock.release() 4. 什么是线程 threading Thread() t.start() t.join() t.name t.getName t.setName t.daemon...

    python 条件同步的使用 条件同步:threading.Condition 多线程同步,python2例程

    python 条件同步的使用 条件同步:threading.Condition 多线程同步,python2例程 多线程的同步  多线程情况下最常见的问题之一:数据共享;  当多个线程都要去修改某一个共享数据的时候,需要对数据访问进行同步...

    Python语言基础:线程等待.pptx

    多线程操作时可能会遇到线程抢占的情况。 具体实现: import threading import time def thread_job(): print("T1 start\n") time.sleep(0.1) # 延时0.1s print("T1 finish\n") added_thread=threading.Thread...

    Python多线程学习资料

    1、 函数式:调用thread模块中的start_new_thread()函数来产生新线程。如下例: 复制代码 代码如下: import time import thread def timer(no, interval): cnt = 0 while cnt&lt;10: print ‘Thread:(%d) Time:%s\n...

    python多线程共享变量的使用和效率方法

    python多线程可以使任务得到并发执行,但是有时候在执行多次任务的时候,变量出现“意外”。 import threading,time n=0 start=time.time() def b1(num): global n n=n+num n=n-num def b2(num): for i in ...

    对python 多线程中的守护线程与join的用法详解

    多线程:在同一个时间做多件事 守护线程:如果在程序中将子线程设置为守护线程,则该子线程会在主线程结束时自动退出,设置方式为thread.setDaemon(True),要在thread.start()之前设置,默认是false的,也就是主线程...

    python线程里哪种模块比较适合

    在Python中可使用的多线程模块主要有两个,thread和threading模块。thread模块提供了基本的线程和锁的支持,建议新手不要使用。threading模块允许创建和管理线程,提供了更多的同步原语。 thread模块函数: start_...

    python线程锁(thread)学习示例

    复制代码 代码如下:# encoding: UTF-8...thread.exit() # 当func返回时,线程同样会结束# 启动一个线程,线程立即开始运行# 这个方法与thread.start_new_thread()等价# 第一个参数是方法,第二个参数是方法的参数thread

    python多线程并发实例及其优化

    单线程执行 python的内置模块提供了两个内置模块:thread和threading,thread是源生模块,threading是扩展模块,在thread的基础上进行了...t.start() # 启动线程 执行结果 C:\Python36\python.exe D:/MyThreading/my

    Python线程的两种编程方式

    举两个简单的例子希望起到抛砖引玉的作用,关于多线程编程的其他知识例如互斥、信号量、临界区等请参考python的文档及相关资料。 1、调用thread模块中的start_new_thread()函数来产生新的线程,请看代码: 复制代码 ...

    Python多线程编程简单介绍

    创建线程 格式如下 复制代码 代码如下: threading.Thread(group=None, target...start() 开始线程的执行 run() 定义线程的功能的函数(一般会被子类重写) join(timeout=None) 程序挂起,直到线程结束;如果给了 timeout

Global site tag (gtag.js) - Google Analytics