python中的threading_关于Python中的线程,之,threading,初探

threading

库主要用于基于线程的并行,核心就是Thread类

class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)

并行是什么就不谈了,用threading的主要目的就是为了实现多个任务的并行,比如WiFi throughput测试中读取RSSI值,为了尽量精准,需要在throughput正在跑的时候同时去读RSSI,有些WiFi芯片平台可能还必须在throughput运行中读取才能精准,所以要用threading来执行并行任务。

小白要先从头来学习和理解,最简单和最有效的方式,码代码。

import threading from time import sleep # 定义一个测试函数 def test(i): print('test',i) sleep(1) print('test',i) sleep(1) if __name__ == '__main__' t1 = threading.Thread(target=test, args=('t1',)) #这里有个关键的地方是target的内容是要执行的函数名,不是函数,就是说不要把后面的括号还有参数直接写进来,参数用args来传递 t2 = threading.Thread(traget=test, args=('t2',)) #再加入一个进程,当然对象也可以是其他你想要的函数 t1.start() #启动Thread对象 t2.start()

执行的结果如下:

test t1 test t2 test t1 test t2

这里要理解t1和t2是同时执行了,如果不是同时执行,应该是下面的结果,先把t1执行完,再执行t2。

test t1 test t1 test t2 test t2

还可以尝试稍微改一下start的前后顺序,你会发现结果有两种。

if __name__ == '__main__' t1 = threading.Thread(target=test, args=('t1',)) t2 = threading.Thread(traget=test, args=('t2',)) t2.start() #t2放在前面,t1放在后面 t1.start()

执行的结果:

#执行第一次 test t2 test t1 test t1 test t2 #执行第二次 test t2 test t1 test t2 test t1

有两种结果,其原因我没有深究,现在我也是小白,暂时不去研究看起来似乎有点高深的东西,但是这个帮助我理解了两个线程的确是并行在执行的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios UISearchBar搜索框的基本使用

摘要: 小巧简洁的原生搜索框,漂亮而易用,如果我们的应用没有特殊需求,都可以使用它。iOS中UISearchBar(搜索框)使用总结 初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar UISearchBar * bar [[U…

Win8下怎样安装Win7 or Win7下怎样安装win8?

预计非常多人可能会用U盘安装工具去去做双系统的安装(Win8下安装Win7, Win7下安装Win8)。可是在安装过程中你 会发现一个问题:win7下安装win8,提示你mbr硬盘格式不能安装win8;win8下安装win7,提…

Linux 练习题-3文件与磁盘 问答

1、描述Liux下软链接和硬链接的区别创建命令不同,ln 命令创建硬链接,ln -s 创建软链接inode节点号不同,硬链接inode与源文件相同,软链接inode与源文件不同使用对象不同,硬链接只能对文件使用,软链接可以对文…

.NET Offer 快到碗里来!.NET 招聘季

关注我们谈到 .NET 在中国的推广和发展,.NET 开发者求职就业及 .NET 企业招人用人的问题往往常被提及。初学者会担心学习 .NET 之后的就业问题,.NET 开发者在求职过程中没有足够多的渠道来获取 .NET 招聘信息,而与此同时,采用 .NE…

java的collections_Java中Collection和Collections的区别

1) 排序(Sort)使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的1 List list new ArrayList();2 int array[] {112, 111, 23, 456, 231};3 for (int i 0; …

jQuery事件绑定(一)

2019独角兽企业重金招聘Python工程师标准>>> 一、on方法 在Jquery1.7中添加,用来代替其他事件绑定方法。向匹配元素添加一个或多个事件处理程序 使用语法: $(selector).on(event,childselector,data,function) 参数: event&#x…

JDBC学习笔记之JDBC简介

1. 引言 JDBC API是一种Java API,可以访问任何类型的表格数据,特别是存储在关系数据库中的数据。 JDBC可以帮助我们编写下列三种编程活动的java应用程序: 1.连接到数据源,如数据库;2.发送查询和更新语句到数据库;3.检索并处理从数…

PaddleOCR在 windows下的webAPI部署方案

很多小伙伴在使用OCR时都希望能过采用API的方式调用,这样就可以跨端跨平台了。本文将介绍一种基于python的PaddleOCR识方案。喜欢的可以关注公众号,获取更多内容。# 一、 windows环境下部署###1.环境操作系统:windows10;主要软件环…

Vim的NerdTree插件

一个项目文件多起来时,左边的文件树菜单是必要的。参考:常用文件树快捷键所有命令及推荐键盘映射:官方 在vundle插件管理的方式,直接在~/.vimrc中的Plugin段落中加入Plugin "scrooloose/nerdtree"然后重启Vim并输入Plug…

java简单投票系统_JSP实现的简单Web投票程序代码

本文实例讲述了JSP实现的简单Web投票程序。分享给大家供大家参考。具体如下:这里使用文本文件作为数据存储的投票系统。1. vote.java:package vote;import java.io.*;import java.util.*;public class vote {public String filePath "";publi…

LeetCode139:Word Break

Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words. For example, given s “leetcode”, dict [“leet”, “code”]. Return true because “leetcode” can be segm…

HTTP2指纹识别(一种相对不为人知的网络指纹识别方法)

这是关于网络指纹识别的两部分系列的第二部分上一部分我介绍了有关TLS 指纹识别方法(以及在不同客户端的指纹有何区别):https://mp.weixin.qq.com/s/BvotXrFXwYvGWpqHKoj3uQHTTP/2 指纹识别和Tls指纹类似也是一种 Web 服务器可以依赖指纹来识…

中兴智能视觉大数据:人脸识别技术目前处于“用的不够,用的不好”

中兴智能视觉大数据报道:在2018年5月30日举行的“人脸识别等AI技术在校园周边安全中的应用”研讨会上,中国人民大学危机管理研究中心主任唐钧指出,人脸识别等AI技术具有“精细识别”、“提前干预”、“及时处置”等优势,有利于促进…

HAProxy的日志配置以及ACL规则实现负载均衡

HAProxy配置日志策略 默认情况下,HAProxy是没有配置日志的在centos6.3下默认管理日志的是rsyslog,可以实现UDP日志的接收,将日志写入文件,写入数据库先检测rsyslog是否安装rpm -q rsyslog安后在/etc/rsyslog.d/下创建haproxy.conf,内容如下: 1 $ModLOad imudp 2 $UDPServerRun …

常见浏览器兼容性问题与解决方案?

(1)浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。碰到频率:100%解决方案:CSS里 *{margin:0;padding:0;}备注&#xff…

C#反射,性能优化,不止于优化

“ 架构师的价值,在于独立且理性的思考”想要写出灵活而且具有更好适应性的代码,反射是首选方案。反射赋予程序在运行时动态创建实例的能力,可以在程序运行时(而非编译时)获取实例类型,获取元数据信息&…

设计模式C++实现--Observer模式

2019独角兽企业重金招聘Python工程师标准>>> 观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。…

Liunx 安装mysql 5.6.16

2019独角兽企业重金招聘Python工程师标准>>> 1.卸载原有的mysql 1)先查看原有的mysql rpm -qa|grep -i mysql 2)删除 mysql rpm -e --nodeps 包名 3)删除老版本 mysql的开发头文件和库 rm -fr /usr/lib/mysql rm -fr /usr/include/mysql 注意:卸载后/va…

java有效索引范围_Java索引超出范围:0

我拼命试图找出一种方法来阻止“字符串索引超出范围:0”错误……只要我不输入任何内容然后继续执行,就会发生这种情况:static String getRef(Scanner Keyboard){Scanner keyboard new Scanner(System.in);String ref "";boolean valid false…

UESTC 电子科大专题训练 DP-N

题意:有n个人写m行代码,第i个人写一行代码会产生ai个bug,问bug小于b的方案数 思路:背包二维费用 AC代码: #include "iostream" #include "string.h" #include "stack" #include "q…