python3.5.3rc1学习七:多线程
import threading
def exampleFun():
#打印当前激活的线程数量
print(threading.active_count)
#查看上面激活的线程是哪几个
print(threading.enumerate())
exampleFun()
#创建线程
def exampleFuc():
added_thread = threading.Thread(target=thread_job)
added_thread.start()
def thread_job():
print("这是一个添加的线程,序列号是%s" % threading.current_thread())
exampleFuc()
print("--------------------")
import time
def thread1_job():
print("T1开始\n")
for i in range(10):
time.sleep(0.5)
print("T1 结束\n")
def exampleFunc():
thread1 = threading.Thread(target=thread1_job,name="T1")
thread1.start()
thread1.join()
print("所有任务都完成了。 \n")
exampleFunc()
print("--------------------")
from queue import Queue
def job(data,q):
for i in range(len(data)):
data[i] = data[i]**2
# put方法把结果放入队列,这里不能使用return语句
q.put(data)
def exampleFunction():
# 新建一个队列
q = Queue()
# 新建一个空的多线程列表
threads = []
# 给出一个数据,到job去计算
data = [[1,2,3],[2,3,4],[3,4,5],[4,5,6]]
# for 循环创建一个多线程,大小根据data[]的大小
for x in range(4):
t = threading.Thread(target = job,args=(data[x],q))
#启动线程
t.start()
# 把创建线程添加到多线程threads这个列表
threads.append(t)
for each_thread in threads:
each_thread.join()
# 定义一个计算结果列表
results = []
# 把结果分别从队列取出,这里需要取4次
for y in range(4):
# q.get()就是从队列取出结果
results.append(q.get())
# 等所以事情完成,就打印结果列表
print(results)
exampleFunction()
python3.5.3rc1学习七:多线程的更多相关文章
- python3.5.3rc1学习十一:字典与模块
#os模块import oscurDir = os.getcwd()print(curDir) os.mkdir("新建") import timetime.sleep(2)os. ...
- python3.5.3rc1学习十:网络请求
#sys模块import sys sys.stderr.write('This is stderr text\n')# 因为从定向有缓冲区,所以需要以下这行代码sys.stderr.flush()sy ...
- python3.5.3rc1学习九:正则表达式
# 正则表达式 ''''' 正则表达式是有一些特殊字符组成,能够帮你找到一些符合一定规则的字符串 先来了解几个符号所代表的意思 \d 匹配所有的数字 \D 匹配所有,但是数字除外 \s 空格 \S 匹 ...
- python3.5.3rc1学习八:文件打包
from cx_Freeze import setup, Executable setup(name='test to exe', version = '0.1', description='test ...
- python3.5.3rc1学习六:画图
# 可以设置颜色,g代表green, r代表red,y代表yellow,b代表blue# linewidth = 5,设置线条粗细 # label 设置线条名称 ##plt.plot(x,y,'b', ...
- python3.5.3rc1学习五:模块
#比较大小#name:maxNumber.py#比较两个数大小#C:\Users\Anthony\AppData\Local\Programs\Python\Python36-32\Lib\site- ...
- python3.5.3rc1学习五:列表与元组
#元组和列表 #元组定义x = 5,6,2,6 #or x = (5,6,2,6) #列表定义 y = [5,6,2,6] # 元组的使用,我们用return语句来演示 def exampleFunc ...
- python3.5.3rc1学习四:类
class calculator: def add(x,y): return x + y print(added) def sub(x,y): return x - y print(sub) def ...
- python3.5.3rc1学习三:文件操作
##全局变量与局部变量x = 6 def printFuc(): y = 8 z =9 print(y + z) print(x) printFuc()#print(y)#常见错误##name = & ...
随机推荐
- 80道最新java基础部分面试题(七)
自己整理的面试题,希望可以帮到大家,需要更多资料的可以私信我哦,大家一起学习进步! 70.TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还 ...
- 如何查看PDF的坐标
有时候,我们明知道现状并不够科学.不够合理,但没有时间和条件去改变现状,还得硬要照着这种方式去维护,很是痛苦. 在程序生成文字报告通常使用docx,如果需要更通用.更灵活,还可以使用rtf,而前期设计 ...
- es6入门7--Set Map数据结构
本文作为ES6入门第十三章的学习整理笔记,可能会包含少部分个人的理解推测,若想阅读更详细的介绍,还请阅读原文ES6入门 一.set数据结构 1.set不接受重复值 ES6新增了Set构造函数用于创建s ...
- php-laravel框架用户验证(Auth)模块解析(一)
一.初始化 使用php artisan命令进行初始化:php artisan make:auth 和 php artisan migrate(该命令会生成users表.password_resets表 ...
- rpmbuild打包
安装: yum install -y rpm-build 目录介绍: 默认目录在 /root/rpmbuild BUILD :你要打包的文件将会在这里编译(编译rpm包的临时目录) BUILDRO ...
- Spring5源码解析4-refresh方法之invokeBeanFactoryPostProcessors
invokeBeanFactoryPostProcessors(beanFactory);方法源码如下: protected void invokeBeanFactoryPostProcessors( ...
- Web前端基础(4):CSS(一)
1. CSS介绍 现在的互联网前端分三层: HTML:超文本标记语言.从语义的角度描述页面结构. CSS:层叠样式表.从审美的角度负责页面样式. JS:JavaScript .从交互的角度描述页面行为 ...
- DevExpress的分页Tab控件XtraTabControl控件的使用
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- JavaWeb之servlet(1)
servlet servlet:就是一个Java程序,运行在web服务器中,用于接收和响应客户端的http请求.更多是配合动态资源使用.当然静态资源也要使用servlet,只不过Tomcat里面已经定 ...
- Clean Code
书名<代码整洁之道> 命名 有意义的命名,使人能读懂 类名和对象名应该是名称或名称短语 方法名应该是动词或动词短语 函数 短小,函数块不要超过一个屏幕 ...