python中的thread
转载自: http://blog.sina.com.cn/s/blog_9f488855010198vn.html
正确与否未验证
python中得thread的一些机制和C/C++不同:在C/C++中,主线程结束后,其子线程会默认被主线程kill掉。而在python中,主线程结束后,会默认等待子线程结束后,主线程才退出。
python对于thread的管理中有两个函数:join和setDaemon
- join:如在一个线程B中调用threada.join(),则threada结束后,线程B才会接着threada.join()往后运行。
- setDaemon:主线程A启动了子线程B,调用b.setDaemaon(True),则主线程结束时,会把子线程B也杀死,与C/C++中得默认效果是一样的。
在这里给出一个例子:

1 #! /usr/bin/env python 2
3 import threading
4 import time
5
6 class myThread(threading.Thread):
7 def __init__(self, threadname):
8 threading.Thread.__init__(self, name=threadname)
9 self.st = 2
10
11 def run(self):
12 time.sleep(self.st)
13 print self.getName()
14 def setSt(self, t):
15 self.st = t
16
17 def fun1():
18 t1.start()
19 print "fun1 done"
20
21 def fun2():
22 t2.start()
23 print "fun2 done"
24
25 t1=myThread("t1")
26 t2=myThread("t2")
27 t2.setSt(10);
28 # t2.setDaemon(True)29 fun1()
30 fun2()
31 print "now u will see me"
python中的thread的更多相关文章
- python中thread的setDaemon、join的用法的代码
下面内容是关于python中thread的setDaemon.join的用法的内容. #! /usr/bin/env python import threading import time class ...
- 多线程在python中的使用 thread
近期想学习研究一下python中使用多线程,来提高python在爬虫项目中的效率. 如今我们在网页上查询到在python中使用的多线程的使用大多数都是使用的threading模块,可是python中另 ...
- python中threading的用法
摘自:http://blog.chinaunix.net/uid-27571599-id-3484048.html 以及:http://blog.chinaunix.net/uid-11131943- ...
- 线程安全及Python中的GIL
线程安全及Python中的GIL 本博客所有内容采用 Creative Commons Licenses 许可使用. 引用本内容时,请保留 朱涛, 出处 ,并且 非商业 . 点击 订阅 来订阅本博客. ...
- Python中的GIL
•start 线程准备就绪,等待CPU调度 •setName 为线程设置名称 •getName 获取线程名称 •setDaemon 设置为后台线程或前台线程(默认) 如果是后台线程,主线程执行过程中, ...
- python中的进程、线程(threading、multiprocessing、Queue、subprocess)
Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CP ...
- Python中的logging模块
http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...
- Python中reactor,factory,protocol
最为简单的情况下,除了了解清reactor的简单使用,你还要了解Protocol和Factory.它们最终都会由reactor的侦听建立和run来统一调度起来. 建立服务器的第一个要解决的问题就是服务 ...
- python中threading模块详解(一)
python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...
随机推荐
- 在RedHat上安装gcc,java 和 eclipse-rcp
本文全是如何用rpm包在红帽子54上安装gcc,automake,java和eclipse等,不是源代码编译,请大家不要误会了. 其实通过rpm包安装东西很简单,麻烦的是有很多rpm是要根据顺序进行先 ...
- Fiddler2 主菜单
Fiddler2 主菜单 六个主菜单分别是: 文件(File) Capture Traffic ——启用捕获功能,快捷键 F12 此功能的开启/关闭状态,程序安装后默认是开启的.可以在 Fiddler ...
- tornado中self.write() 写list
tornado源码中不支持在self.write()中直接传入list对象,源代码如下 def write(self, chunk): if self._finished: raise Runtime ...
- [读书笔记]java中的volatile关键词
以下内容大多来自周志明的<深入理解Java虚拟机>. 当一个变量被volatile修饰后,它将具备两种特性: 1. 保证此变量对所有线程的可见性,这里的“可见性”是指当一条线程修改了这个变 ...
- js数字时钟
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- iOS9 URL Schema 白名单 微信
近期苹果公司iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装. 受此影响,当你的应用在 ...
- 关于C语言的问卷调查(补交)
你对自己的未来有什么规划?做了哪些准备?(还是处于比较迷茫的状态:我做的准备是吧自己对计算机的兴趣提起来!) 你认为什么是学习?学习有什么用?现在学习动力如何?为什么?(学习就是学自己不会的东西:增加 ...
- 将内存ffff:0~ffff:b中的数据拷贝到0:200~0:20b中
我是按照字,也就是2个字节拷贝的. 这样就可以让循环减半== assume cs:sad sad segment start: mov ax, 0ffffh mov ds, ax mov bx, 0h ...
- System.DateUtils 2. IsInLeapYear 判断是否是闰年
编译版本:Delphi XE7 function IsInLeapYear(const AValue: TDateTime): Boolean; implementation // 判断是否是闰年 f ...
- 转~~~ DIV+CSS实现三角形提示框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel= ...