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 ...
随机推荐
- 转载:ORA-01438: 值大于为此列指定的允许精度
Number的数据声明如下: 表示 作用 说明Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数 ...
- Sublime Text2 快捷键汇总
一个好的编辑器,能大大提高编程的效率.如果能熟知软件的快捷键,那更能让你得心印手.这些内容都是我网上和自己实际使用过程中所收集而来的,在网络上应该也算比较全面的了吧.欢迎大家补充,我也会在以后慢慢添加 ...
- ios系统(苹果手机)按钮显示为圆角和渐变的问题
按钮在安卓手机上显示正常,但在苹果手机上会显示如下: 解决办法:给该按钮的样式加上:-webkit-appearance:none;这样按钮就会显示正常
- Servlet---RequestDispatcher.include方法
为了实现代码重用,需要将某些代码和数据放在一个或多个Servlet中,以供其他Servlet使用,提供了RequestDispatcher.include方法,首先通过getServletContex ...
- Oracle----Job
最近需要使用到Oracle的定时Job,感觉到学习能力很重要,同时也感觉到及时总结和记笔记也很重要,现在开始总结Job的使用
- call指令的一个细节
执行下面这个程序之后,ax的值是多少? assume cs:code code segment start: call s inc ax s: pop ax mov ax, 4c00h int 21h ...
- JS函数是如何执行的
当局部变量和函数参数同名时,该怎么理解呢? function test(a){ var a=a||5; alert(a) } test() //没传参的话,就是5:传参的话就alert参数 ===== ...
- LeetCode() Binary Tree Level Order Traversal
感觉我这个思路好 先记录上一层有几个节点 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeN ...
- uva 12169
/* 巨大的斐波那契数列_________________________________________________________________________________ #inclu ...
- 转~~~ DIV+CSS实现三角形提示框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel= ...