Python线程的用法 函数式线程_thread和threading 样例
函数式线程写起来比较简单,但是功能没有threading那么高级,先来个函数式编程样例:
#!/usr/bin/python
#coding: utf-8 #————————————————————————函数式线程————————————————————————————————————————
#QQ496631085 小和 XiaoHe
import _thread
import time def print_time(threadName,delay):
count = 0
while count<4:
time.sleep(delay)
count += 1
print(threadName,time.ctime()) print(time.ctime())#打印现在时间以方便对比
_thread.start_new_thread(print_time,("thread-1",2))
_thread.start_new_thread(print_time,("thread-2",4))
time.sleep(200)#不加这个有的编译器,直接到最后就停止整个程序运行了,看不出效果
print("end") #————————————————————————函数式线程————————————————————————————————————————
然后就是threading线程样例:
#!/usr/bin/python
#coding: utf-8 #===========================threading======================================== #QQ496631085 XiaoHe
import threading
import time class myThread(threading.Thread):
"""docstring for myThread"""
def __init__(self, name,delay):
threading.Thread.__init__(self)
print(name+"线程开始时间" +time.ctime()) self.name =name
self.delay = delay def run(self):
print("Starting " + self.name + time.ctime())
print_time(self.name, self.delay)
print("Exiting " + self.name + time.ctime()) def print_time(threadName, delay):
counter = 0
while counter < 3:
time.sleep(delay)
print("延时" + threadName ,time.ctime())
counter+=1 threads =[]
#创建新线程
thread1= myThread("Thread-111",2)
thread2= myThread("Thread-222",4) #开始新线程
thread1.start()
thread2.start() #添加线程到线程列表 然后一直等待线程终止
threads.append(thread1)
threads.append(thread2) #等待线程结束
for t in threads:
t.join()
print("线程结束")
#===========================threading========================================
如果觉得这个还慢有不足的地方,可以试试queue的多线程爬虫
Python线程的用法 函数式线程_thread和threading 样例的更多相关文章
- Python Web框架Tornado的异步处理代码演示样例
1. What is Tornado Tornado是一个轻量级但高性能的Python web框架,与还有一个流行的Python web框架Django相比.tornado不提供操作数据库的ORM接口 ...
- Python sleep()函数用法:线程睡眠
如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用 time 模块的 sleep(secs) 函数来实现.该函数可指定一个 secs 参数,用于指定线程阻塞多少秒. 当前线程调用 ...
- Swift - 加速传感器(CoreMotion)的用法,小球加速运动并反弹样例
1,加速传感器可以监听到x,y,z三个方向的加速度,使用步骤如下: (1)实例化CMMotionManager类 (2)向CMMotionManager的accelerometerUpdateInte ...
- Java中foreach用法,增强型的for循环的样例和解释
JDK1.5加入的增强for和循环. 这段时间又回顾了一下JAVA基础 foreach语句使用总结 增强for(part1:part2){part3}; part2中是一个数组对象,或者是带有泛性的集 ...
- C#线程池用法
C#线程池用法 在C#编程语言中,使用线程池可以并行地处理工作,当强制线程和更新进度条时,会使用内建架构的ThreadPool类,为批处理使用多核结构,这里我们来看在C#编程语言中一些关于来自Syst ...
- python自动化开发学习 进程, 线程, 协程
python自动化开发学习 进程, 线程, 协程 前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这 ...
- python基础-12 多线程queue 线程交互event 线程锁 自定义线程池 进程 进程锁 进程池 进程交互数据资源共享
Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CP ...
- python中的进程、线程(threading、multiprocessing、Queue、subprocess)
Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CP ...
- Python之路-python(paramiko,进程和线程的区别,GIL全局解释器锁,线程)
一.paramiko 二.进程.与线程区别 三.python GIL全局解释器锁 四.线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生 ...
随机推荐
- Spring _day02_IoC注解开发入门
1.Spring IoC注解开发入门 1.1 注解开发案例: 创建项目所需要的jar,四个基本的包(beans core context expression ),以及两个日志记录的包,还要AOP的包 ...
- qr-mili Tekniskt stöd
qr-mili Är ett QR-kodverktyg Identifiera enkelt QR-koder Generera QR-kod Skapa en QR-kod med logotyp ...
- java AQS(AbstractQueuedSynchronizer)同步器详解
除了内置锁(synchronized)外,java AQS(AbstractQueuedSynchronizer)同步器几乎是所有同步容器,同步工具类的基础.ReentrantLock.Reentra ...
- 等积投影(equal-area projection)
等积投影(equal-area projection)是地图投影的一种,是地图上任何图形面积经主比例尺放大以后与实地上相应图形面积保持大小不变的一类投影.即投影面积与实地面积相等的投影——面积比为1. ...
- Linux 文件系统(一)---虚拟文件系统VFS----超级块、inode、dentry、file
转自:http://blog.csdn.net/shanshanpt/article/details/38943731 http://elixir.free-electrons.com/linux/v ...
- volatile 与 JVM 指令重排序
前言: 在做单例模式时 有博客在评论区 推荐使用 volatile 关键字 进行修饰 然后用了两天时间查资料看文档 发现涉及的面太广 虽然已经了解为什么要使用 volatile + synchroni ...
- url参数解析 and 日期格式化
~function (pro) { //url解析 function queryURLParameter() { var reg = /([^?&=#]+)=([^?&=#]+)/g, ...
- sprigmvc 传值jsp页面
https://blog.csdn.net/qq_41357573/article/details/84675535#如何将controller层值传递到jsp页面
- java知识点总结----java入门(1)
1.首先的明白什么是java? 1.java是一门编程语言 2.java是开发环境 3.java是运行环境 2.java概况--java构架 1.J2SE (Java2 Standard Editio ...
- [c++]大数运算---利用C++ string实现任意长度正小数、整数之间的加减法
本文为大大维原创,最早于博客园发表,转载请注明出处!!! 一.概述 C/C++中的int类型能表示的范围是-2E31-2E31–1.unsigned类型能表示的范围是0-2E32–1,即 0-4294 ...