Python3多线程操作简单示例
本文实例讲述了Python3多线程操作。分享给大家供大家参考,具体如下:
python3 线程中常用的两个模块为:
_thread
threading(推荐使用)
thread 模块已被废弃。用户可以使用 threading 模块代替。所以,在 python3 中不能再使用"thread" 模块。为了兼容性,python3 将 thread 重命名为 "_thread"。
test.py
# -*- coding:utf-8 -*- #!/usr/bin/python3 import _thread import time # 定义线程调用函数 def echo_name(tag,delay): count=0 while count<5: time.sleep(delay) count+=1 print("%s:%s" % ( tag,time.ctime(time.time()) )) #创建2个线程 try: _thread.start_new_thread( echo_name,("thread_1",2)) _thread.start_new_thread( echo_name,("thread_2",5)) except: print("error:无法启动线程") #死循环 while 1: pass
执行结果
[root@mail pythonCode]# python3 test.py
thread_1:Wed Jul 20 18:03:39 2016
thread_1:Wed Jul 20 18:03:41 2016
thread_2:Wed Jul 20 18:03:42 2016
thread_1:Wed Jul 20 18:03:43 2016
thread_1:Wed Jul 20 18:03:45 2016
thread_2:Wed Jul 20 18:03:47 2016
thread_1:Wed Jul 20 18:03:47 2016
thread_2:Wed Jul 20 18:03:52 2016
thread_2:Wed Jul 20 18:03:57 2016
thread_2:Wed Jul 20 18:04:02 2016
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
python并发编程之多进程、多线程、异步和协程详解
最近学习python并发,于是对多进程.多线程.异步和协程做了个总结. 一.多线程 多线程就是允许一个进程内存在多个控制权,以便让多个函数同时处于激活状态,从而让多个函数的操作同时运行.即使是单CPU的计算机,也可以通过不停地在不同线程的指令间切换,从而造成多线程同时运行的效果. 多线程相当于一个并发(concunrrency)系统.并发系统一般同时执行多个任务.如果多个任务可以共享资源,特别是同时写入某个变量的时候,就需要解决同步的问题,比如多线程火车售票系统:两个指令,一个指令检查票是否卖完
-
用Python实现一个简单的线程池
线程池的概念是什么? 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源.在Java中更是 如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收.所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些 很耗资源的对象创建和销毁.如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些"池化资源"技术产生的原因. 我理解为线程池是一个存放很多线程的单位,同时还有一个对应的任务队列.整个执行过程其实就是使
-
简单介绍Python的Tornado框架中的协程异步实现原理
Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, 今天就简单介绍下 Tornado 协程实现原理, Tornado 的协程是基于 Python 的生成器实现的, 所以首先来回顾下生成器. 生成器 Python 的生成器可以保存执行状态 并在下次调用的时候恢复, 通过在函数体内使用 yield 关键字 来创建一个生成器, 通过内置函数 next 或生
-
关于Python核心框架tornado的异步协程的2种方法详解
什么是异步? 含义 :双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位 现象:没有共同的时钟,不考虑顺序来了就处理 直观感受:就是不用等了,效率高 同步 含义:指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系 现象:有一个共同的时钟,按来的顺序一个一个处理 直观感受 :就是需要等候,效率低下 那么今天我们看怎么用2种方法用代码实现tornado的异步? 这些是导入的包: 2种方法用代码实现to
-
Python实现线程状态监测简单示例
本文实例讲述了Python实现线程状态监测.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- from threading import Thread import time def func1(): time.sleep(10) t1=Thread(target=func1) print('t1:',t1.isAlive()) t1.start() print('t1:',t1.isAlive()) t1.join(5) print('t1:',t1.isAliv
-
对Python协程之异步同步的区别详解
一下代码通过协程.多线程.多进程的方式,运行代码展示异步与同步的区别. import gevent import threading import multiprocessing # 这里展示同步和异步的性能区别,可以看到异步直接同时执行并完成, # 而同步,需要等待第一个完成后再次执行下一个,是有顺序的执行,而异步不需要 import time def task(pid): gevent.sleep(0.5) print('Task %s done' % pid) def task2(pid)
-
用Python实现一个简单的多线程TCP服务器的教程
最近看<python核心编程>,书中实现了一个简单的1对1的TCPserver,但是在实际使用中1对1的形势明显是不行的,所以研究了一下如何在server端通过启动不同的线程(进程)来实现每个链接一个线程. 其实python在类的设计上已经考虑到了这一方面的需求,我们只要在自己的server上继承一下SocketServer.BaseRequestHandler就可以了. server端代码如下: #!/usr/bin/env python import SocketServer from t
-
python 单线程和异步协程工作方式解析
在python3.4之后新增了asyncio模块,可以帮我们检测IO(只能是网络IO[HTTP连接就是网络IO操作]),实现应用程序级别的切换(异步IO).注意:asyncio只能发tcp级别的请求,不能发http协议. 异步IO:所谓「异步 IO」,就是你发起一个 网络IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知. 实现方式:单线程+协程实现异步IO操作. 异步协程用法 接下来让我们来了解下协程的实现,从 Python 3.4 开始,Python 中加入了协程的概
-
Python3多线程操作简单示例
本文实例讲述了Python3多线程操作.分享给大家供大家参考,具体如下: python3 线程中常用的两个模块为: _thread threading(推荐使用) thread 模块已被废弃.用户可以使用 threading 模块代替.所以,在 python3 中不能再使用"thread" 模块.为了兼容性,python3 将 thread 重命名为 "_thread". test.py # -*- coding:utf-8 -*- #!/usr/bin/pytho
-
Python3 socket同步通信简单示例
本文实例讲述了Python3 socket同步通信.分享给大家供大家参考,具体如下: 本文比较简单,适合入门用,作个笔记,方便日后抄写 一个服务端,一个客户端,而且是阻塞方式,一次只能接受一个客户端连接并通信噢. 客户端发送'bye', 结束与服务端的通信,如果发送'shutdown',服务端将会关闭自己! 服务端代码: from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZE = 1024 ADDR =
-
PHP的PDO操作简单示例
本文实例讲述了PHP的简单PDO操作.分享给大家供大家参考,具体如下: 网上关于PDO的资料很多.这里就不累赘了. 这里我将PDO所有操作封装到一个类里方便操作. 类代码如下: class DB { //pdo对象 public $con = NULL; function DB() { $this->con = new PDO("mysql:host=127.0.0.1;dbname=dbtest", "root", "xxx", arra
-
PHP链表操作简单示例
本文实例讲述了PHP链表操作.分享给大家供大家参考,具体如下: 在php中运行数据结构,基本都是用数组模拟的,只是用一直思想而已. 今天遇到的这个问题是,两个链表进行合并. 链表合并效果图 问题描述:A链表是模版链表,B链表的长度不确定,A,B二个链表结合后形成C链表. 说一下编程思想:A链表是模版链表所以在运算完成了,长度了唯一不变的.而B链表的长度是不确定的.所以可以先对B链表进行判断,分了三步: B链表是不是为空 B链表是不是比A链表短或者相等 B链表是不是比A链表长 编程就是要列出尽可能
-
python使用 __init__初始化操作简单示例
本文实例讲述了python使用 __init__初始化操作.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- # !/usr/bin/python class Dog(): """"一次模拟小狗的简单尝试""" def __init__(self,name,age): """初始化属性name和age""" print self print typ
-
php + ajax 实现的写入数据库操作简单示例
本文实例讲述了php+ ajax 实现的写入数据库操作.分享给大家供大家参考,具体如下: 这个是最简单的表单提交 延伸:后面有很多需要提交的信息 如何快速部署接口 此例子是移动端H5页面,使用的是zepto.min.js HTML <input class="name" type="text" placeholder="请输入您的姓名" id="name"> <input class="tel&q
-
PHP正则匹配操作简单示例【preg_match_all应用】
本文实例讲述了PHP正则匹配操作.分享给大家供大家参考,具体如下: <?php $str = <<< EOT <a href="www/app/a/2QRN7v" rel="external nofollow" > <div class="phonebg"> <img src="http://www/template9/yunqingjian/jianjie/68.jpg"
-
Python多线程爬虫简单示例
python是支持多线程的,主要是通过thread和threading这两个模块来实现的.thread模块是比较底层的模块,threading模块是对thread做了一些包装的,可以更加方便的使用. 虽然python的多线程受GIL限制,并不是真正的多线程,但是对于I/O密集型计算还是能明显提高效率,比如说爬虫. 下面用一个实例来验证多线程的效率.代码只涉及页面获取,并没有解析出来. # -*-coding:utf-8 -*- import urllib2, time import thread
-
java实现XML增加元素操作简单示例
本文实例讲述了java实现XML增加元素操作.分享给大家供大家参考,具体如下: package Day01; import java.io.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*; public
-
mysql show操作简单示例
本文实例讲述了mysql show操作.分享给大家供大家参考,具体如下: SHOW CHARACTER SET 显示所有可用的字符集 SHOW CHARACTER SET; SHOW CHARACTER SET LIKE 'latin%'; SHOW COLLATION 输出包括所有可用的字符集 SHOW COLLATION; SHOW COLLATION LIKE 'latin1%'; SHOW COLUMNS 显示在一个给定表中的各列的信息,对于视图,本语句也起作用. SHOW COLUMN
随机推荐
- 允许远程用户访问mysql服务sql语句
- php中base64_decode与base64_encode加密解密函数实例
- Python3使用requests包抓取并保存网页源码的方法
- java组件fileupload文件上传demo
- javascript动画效果类封装代码
- Angular ng-class详解及实例代码
- Linux下重启oracle服务及监听器和实例详解
- php天翼开放平台短信发送接口实现方法
- Pycharm学习教程(5) Python快捷键相关设置
- linux 下同名符号冲突问题解决方案
- 六款帮助你实现惊艳视差滚动效果的jQuery插件
- python传递参数方式小结
- Android实现EditText中添加和删除bitmap的方法
- vs.net2008添加模板方法
- php计划任务之验证是否有多个进程调用同一个job的方法
- 基于文本的留言簿
- 详解Docker方式实现MySql 主从复制(实践篇)
- java实现一个简单的网络爬虫代码示例
- python实现员工管理系统
- VS2012 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出 原创