python之线程(threading)
线程是属于进程的,一个进程可能包含多个线程
至于线程和进程在使用时哪个更好,只能看使用的场景了
话不多说,看下线程模块(threading)的使用方法:
#导入模块
import threading,os,time,random #创建一个测试函数subFunc
def subFunc(param,ppid):
sleepTime = random.randint(1,10)
print('Begin %s subProcess,and will wait %s,subPID is %s,mainPID is %s,threadName is %s'%(param,sleepTime,os.getpid(),ppid,threading.current_thread().name))
time.sleep(sleepTime)
print('End %s subProcess...'%param) if __name__ == '__main__':
param = 5
print('Begin main process...')
threadingList = []
for i in range(5):
t = threading.Thread(target=subFunc,args=(i+1,os.getpid()),name='T'+ str(i))
t.start()
threadingList.append(t)
for t in threadingList:
t.join()
print('End main process...')
和进程的写法类似,都是先创建,在启动,最后加一个join等待所有线程结束在结束整个进程,如下为执行结果:
aaarticlea/png;base64,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r02ulG3TuFC8umGGonS2i3Wrq56Xcx7aPLxbNoaJLzDZwsKFC01Ozdi6daueMWNGxexXmNMZM3lhLuUBAwZIDDApByaRQX0xg1bnzp1NTrl4OVcL27/y9vd9j2w71AT3emW3i9kibTqdmciuNkwkhr4O9cZsaJhEByo7XgkjcdxxQt26deUdo9+r6b333lONGzfGEVK1atWq8pFQw4YNTSqRbQdsM2pUSV8vGjVqZFJVy7ZpXChe3bZv325SqanO8+ByzkOb57afTd90003yXXnrrbdkuSaUlZWpI0eOqNatW5uIUkuWLFFDhw5VN954o1q3bp2JKlkvKytL6jts2LCE0ZKvnKuF7V853/fIbZPq5l6v7HZxrGy6QYMG8p4JHn744Yq+t3bt2urRRx+VdLLjJcr78osQwgvzr7pTPWJ+VkxPiqkSMTeqhUnP+/btK9Ot4e7tySeflLgtx2VjmGt34MCBFdOWVgaf+fGPf5zSXdX8+fPlCUKHDh0q5n126+KmAelXX31VpgrFHahl18Pof82aNQkx3JVjn915w7Ev2dnZMu2ou1+YO/rBBx/Ud9xxh0yyb4Xa01d/CMVDPvjgA5nrHaOHTz75RGK2/r72x75j3ehEknWSQf62bdvkHU9sFixYYHIubsMn3Xgc1gtt17e/gHV95du4Ly8knXWr8zy03M9bNobR48033yzpZGz5cemebytWrJDRgzsPNfYFIwdMAYmpKt2pjS0cN7wsXzkhqDfq9sADD8jUkq+99prJSe98sDHf98Lmsf39bP3j+4Dl2bNnS7tFg7GKGF6+62foehg6jqHrFdKYqx9z87txXznID50/ofqEoCx3e1a6xxF85Vjx4wWXrI0CLly4II+vozsBEy1/tI3GR+PYOV0BnT0urJjjGTtt4USIVwYnNmKYnH3//v26Xr16Jic5PG58++239VNPPWUiYZhjFvN24xES6gru48r4ox6kcbJi34YMGWKi/oY8c+aMxPPz8+Uxjgvz7aKcTZs2Jcy9i7l68UXCdjHRvBVqT1/9IRQP6devn47u4GSyfpxEkKz9se/r16/XBw4c8O67a8qUKToaZehoBKnvv/9+/cQTT5gc/3G30o3HJduub3/hcuoTks761XkeWr48G8Oxvu222ySdTKh90jnfMP80vv/gXvybNGkic0yjjJUrVybM7wy4mK5a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165VP/vZz8xS2IIFC1Tr1q1l3vKxY8dKzNYnnrYw2m7fvr3UzYVOPDc3V54GgP1scXGx6tevn9xYWNjHvn37quzs7IT9xVzhI0eOVC1atFAFBQUmqtSuXbvUgAEDVI8ePdSOHTtM1F9/CMWJiIhSJhOSOhAqKSlJmGP73LlzslxYWKj379+vo1G6ydF6yJAhev369frAgQPeebl9PvnkE71q1SqzlBzmKse83SdOnNB79uyRWGlpacW2Tp06lbBdpDdu3Cjze6Nulq9uZ86ckXh+fr4+fvy4iZYbMWKElLNp0yZJW6NGjdKLFi2S7Q4dOtREtR4+fLhsE3WMOnkT9dcfQnEiIqJUXTKfOEamsZBw4266adOm6uDBg6pOnTrBz7ref/99efSOUWsqdu/eLSPro0ePqsmTJ8uoH0L1senoxkM1b95cffPNNwnxOMTPnz8vo3QX/vguujGRz7Rs2VIdOnSoIo7ROH5ucCF++PBhSWN9rAOh+ofiREREqUroucrKyuQdf9iGP1R7/fXXZdn+jmzzwabxOHj79u1q69atsuyuE7d48WJ14cIF6cDxjuXKrF69Ws2YMUNNmTJF/rLdikay0lHav3B3t/vFF1+obdu2qa5du8qyzbN/4Gah8wZf596rVy95HI8X0laXLl1UYWGhlLl06VITVapnz57q5MmTUpbtwCFU/1CciIgoZVGnUwGL7mvq1KmXxN1l2LBhgzwanjZtWkLcp3bt2hXr4IVH05UZPXq0btOmjc7KytJz5841Ua2XLVum27Ztq+fMmZOw3by8PB3dWOju3bvrLVu2SMzdpisUBzwajzpv3bt3b11cXGyiWkeduu7Tp49u166dPA63sH5OTo7Uc9asWSYarn8oPmHCBJNKlG6ciIi++y55nE5ERESZwfvX6URERHTtYydORESUodiJExERZSh24kRERBmKnTgREVGGYidORESUodiJExERZSh24kRERBmKnTgREVGGYidORESUoRI6cczo5b6efvppk1M5+5nKYHKV6prwI1QHG69fv77q37+/2rx5s8khIiLKXAmduJ3lCx0tZi5r1aqVLKcCs56lom7duurXv/61WapapaWlJpXI7hfyMf1nXl6eLBMREWWyhE4cI1VAp4f5sh955BFZTgXmCE+Fnda0OjRs2NCkEtn9wpzh1bl9IiKimuT9Tbxx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" alt="" />
我们可以看到,pid和主进程中是保持一致的,线程的名称在创建线程时改成了T+i,所以显示为T0,T1....,如果不改名字,默认为Thread-1,Thread-2....
python之线程(threading)的更多相关文章
- 一文了解Python的线程
问题 什么是线程? 如何创建.执行线程? 如何使用线程池ThreadPoolExecutor? 如何避免资源竞争问题? 如何使用Python中线程模块threading提供的常用工具? 目录 1. 什 ...
- Python 线程(threading) 进程(multiprocessing)
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- <python的线程与threading模块>
<python的线程与threading模块> 一 线程的两种调用方式 threading 模块建立在thread 模块之上.thread模块以低级.原始的方式来处理和控制线程,而thre ...
- {Python之线程} 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Threading模块 九 锁 十 信号量 十一 事件Event 十二 条件Condition(了解) 十三 定时器
Python之线程 线程 本节目录 一 背景知识 二 线程与进程的关系 三 线程的特点 四 线程的实际应用场景 五 内存中的线程 六 用户级线程和内核级线程(了解) 七 python与线程 八 Thr ...
- python学习笔记——线程threading (二)重写run()方法和守护进程daemon()
1 run()方法 1.1 单个线程 在threading.Thread()类中有run()方法. from time import ctime,sleep import threading # 定义 ...
- python学习笔记——线程threading (一)
1 线程threading 1.1 基本概述 也被称为轻量级的进程. 线程是计算机多任务编程的一种方式,可以使用计算机的多核资源. 线程死应用程序中工作的最小单元 1.2 线程特点 (1)进程的创建开 ...
- python笔记9-多线程Threading之阻塞(join)和守护线程(setDaemon)
python笔记9-多线程Threading之阻塞(join)和守护线程(setDaemon) 前言 今天小编YOYO请xiaoming和xiaowang吃火锅,吃完火锅的时候会有以下三种场景: - ...
- python笔记7-多线程threading之函数式
前言 1.python环境3.62.threading模块系统自带 单线程 1.平常写的代码都是按顺序挨个执行的,就好比吃火锅和哼小曲这两个行为事件,定义成两个函数,执行的时候,是先吃火锅再哼小曲,这 ...
- Python 线程(threading)
Python 的thread模块是比较底层的模块,Python的threading模块是对thread做了一些包装,可以更加方便的 被使用; 1. 使用threading 模块 # 示例一: 单线程执 ...
- python 线程之 threading(四)
python 线程之 threading(三) http://www.cnblogs.com/someoneHan/p/6213100.html中对Event做了简单的介绍. 但是如果线程打算一遍一遍 ...
随机推荐
- Pandas合并数据集之merge、join方法
合并数据集 pandas.merge 可根据一个或多个键将不同DataFrame中的行连接起来. pandas.concat 可以沿着一条轴将多个对象堆叠到一起. combine_first merg ...
- jQuery开发工具
开发工具:MyEclipse2014 + aptana插件 下载apada 放到MyEclipse的路径 https://segmentfault.com/a/1190000005711923 ...
- EasyChat简易聊天室实现
我是个技术新人,刚刚毕业,平时遇到问题都是在网上查找资料解决,而很多经验都来自园子,于是我也想有自己的园子,把自己的编程快乐与大家分享. 在学校学习的期间,老师带我们做winform,那时候我什么都不 ...
- python--第十四天总结(js)
选择器允许您对元素组或单个元素进行操作. jQuery 选择器 在前面的章节中,我们展示了一些有关如何选取 HTML 元素的实例. 关键点是学习 jQuery 选择器是如何准确地选取您希望应用效果的元 ...
- c++ 中的智能指针实现
摘要:C++11 中新增加了智能指针来预防内存泄漏的问题,在 share_ptr 中主要是通过“引用计数机制”来实现的.我们今天也来自己实现一个简单的智能指针: // smartPointer.cpp ...
- 8. String to Integer (atoi) 字符串转成整数
[抄题]: Input: "42" Output: 42 Example 2: Input: " -42" Output: -42 Explanation: T ...
- 20175234 2018-2019-2 《Java程序设计》第四周学习总结
20175234 2018-2019-2 <Java程序设计>第四周学习总结 教材学习内容总结 教材学习了子类,其重点是方法重写.对象的上转型对象和多态,强调了面向抽象编程的思想. 学习I ...
- [费用流][NOI2008]志愿者招募
志愿者招募 题目描述 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难 题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能完 ...
- C++学习札记(3)
一边听着许巍的音乐,一遍学习着C++的精髓,这感觉这酸爽,我一个人体会和知道. 许巍是两代人共同的时代标志,他的音乐作品脍炙人口,堪称经典,经久不衰:此时此刻品味,依然有丰富的各种味道和感情.可能因为 ...
- python 实践项目 强密码检测
需求:写一个函数,它使用正则表达式,确保传入的口令字符串是强口令.强口令的定义是:长度不少于 8 个字符,同时包含大写和小写字符,至少有一位数字.你可能需要用多个正则表达式来测试该字符串,以保证它的强 ...