python 用Threading创建多线程
#-*-coding:utf-8-*-
'''python标准库提供了两个多线程模块,分别为thread和threading,
其中thread模块是低级模块,threading是高级模块,对thread进行了封装,
绝大多数情况下,只需要使用threading这个高级模块'''
#使用threading模块创建多线程
#方式一:把一个函数传入并穿件Thread实例,然后调用start方法开始执行
import random
import time,threading #新线程执行的代码
# def thread_run(urls):
# print("Current %s is running...."% threading.current_thread().name)
# for url in urls:
# print('%s--->>>%s'%(threading.current_thread().name,url))
# time.sleep(random.random())
# print("%s ended." % threading.current_thread().name)
# print("%s is runing..."%threading.current_thread().name)
# t1=threading.Thread(target=thread_run,name='Thread_1',args=(['url_1','url_2','url_3']))
# t2=threading.Thread(target=thread_run,name='Thread_1',args=(['url_4','url_5','url_6']))
# t1.start()
# t2.start()
# t1.join()
# t2.join()
# print("%s ended."% threading.current_thread().name)
#方式二:直接从threading.Thread集成并穿件线程类,然后重新__init__方法和run方法
class myThread(threading.Thread):
def __init__(self,name,urls):
threading.Thread.__init__(self,name=name)
self.urls=urls
def run(self):
print("Current %s is running..."%threading.current_thread().name)
for url in self.urls:
print("%s--->>>%s"%(threading.current_thread().name,url))
time.sleep(random.random())
print("%s is running..."%threading.current_thread().name)
t1=myThread(name='Thread 1',urls=['url_1','url_2','url_3'])
t2=myThread(name='Thread 2',urls=['url_4','url_5','url_6'])
t1.start()
t2.start()
t1.join()
t2.join()
print("%s ended "% threading.current_thread().name)
摘自《Python爬虫开发与项目实战》
python 用Threading创建多线程的更多相关文章
- Python | 面试必问,线程与进程的区别,Python中如何创建多线程?
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题第20篇文章,我们来聊聊Python当中的多线程. 其实关于元类还有很多种用法,比如说如何在元类当中设置参数啦,以及一 ...
- python 2种创建多线程的方法
多个线程是可以操作同一个全局变量的,因此,可以通过这种方式来判断所有线程的执行进度 # 第一种方法:将要执行的方法作为参数传给Thread的构造方法 import threading import t ...
- 简述python(threading)多线程
一.概述 import threading 调用 t1 = threading.Thread(target=function , args=(,)) Thread类的实例方法 # join():在子线 ...
- Python标准库08 多线程与同步 (threading包)
Python主要通过标准库中的threading包来实现多线程.在当今网络时代,每个服务器都会接收到大量的请求.服务器可以利用多线程的方式来处理这些请求,以提高对网络端口的读写效率.Python是一种 ...
- 【python,threading】python多线程
使用多线程的方式 1. 函数式:使用threading模块threading.Thread(e.g target name parameters) import time,threading def ...
- Python并发编程之创建多线程的几种方法(二)
大家好,并发编程 进入第二篇. 今天的内容会比较基础,主要是为了让新手也能无障碍地阅读,所以还是要再巩固下基础.学完了基础,你们也就能很顺畅地跟着我的思路理解以后的文章. 本文目录 学会使用函数创建多 ...
- Python并发复习2 - 多线程模块threading
一.多线程的调用 threading 模块建立在thread 模块之上.thread模块以低级.原始的方式来处理和控制线程,而threading 模块通过对thread进行二次封装, 提供了更方便的a ...
- Python笔记:threading(多线程操作)
Python的线程操作在旧版本中使用的是thread模块,在Python27和Python3中引入了threading模块,同时thread模块在Python3中改名为_thread模块,thread ...
- Python之threading多线程,多进程
1.threading模块是Python里面常用的线程模块,多线程处理任务对于提升效率非常重要,先说一下线程和进程的各种区别,如图 概括起来就是 IO密集型(不用CPU) 多线程计算密集型(用CPU) ...
随机推荐
- 20155217《网络对抗》Exp08 Web基础
20155217<网络对抗>Exp08 Web基础 实践内容 Web前端:HTML基础 Web前端:javascipt基础 Web后端:MySQL基础 Web后端:PHP基础 SQL注入 ...
- js实现60秒倒计时效果(使用了jQuery)
今天碰到要实现一个类似那种短信验证码60秒倒计时的需求,好久不写js,有点手生.把代码记录下,方便后续查阅. 这里我用了jQuey,毕竟写起来简洁点.下面直接看效果和代码. 一.效果 ...
- Linux环境下使用n更新node版本失败的原因与解决
Linux环境为CentOS 6.5 64位,阿里云低配服务器...学生优惠,然而下个月即将过期,真是个悲伤的故事 很久之前就安装了node,但是一直没有进行过升级,近日因为将部分异步代码更新为采用原 ...
- 搭建个人博客 github+hexo
其实相关的教程网上有很多很多,不过就是很多很多,而且技术大神们每个人都写得不一样啊喂,为什么我明明就是一步一步按照教程来的还是有那么多乱七八糟的错?...所以我决定写此篇记录一下我搭建博客的过程以及我 ...
- 企业落地Kubernetes的问题与对策
在当今云计算领域,“容器技术”已经从三四年前的炒作期正式进入了产业落地期,而Kubernetes作为容器平台的标准已经得到了广泛应用. Kubernetes从2014年6月由Google宣布开源,到2 ...
- 以e2e_cli为例漫谈fabric的一些基础知识点
在刚接触fabric的时候一般都是直接跟着wiki的教程一步步安装配置,执行一系列命令,最终将其运行起来,但很多人对其中的运行流程及其基础知识点可能不是很了解.基于此今天我将以$FABRIC_ROOT ...
- 团队作业Week5
每个团队开一个讨论会,协商讨论团队贡献分的分配方式.每个团队的团队贡献分为50分/人.每个人分数不能相同,请详细说明分数的分配规则. 可参考这个博客. 截止时间:2014-10-27
- Daily Scrum & Project Team Meeting Review - 11/27
Welcome back Liyuan! Project Team Meeting Review 今天很荣幸能和Xin Zou.Travis Li.Ran Bi和Zhongqiu交流了项目进度和下一步 ...
- 对常用软件的评价(TGP腾讯游戏平台)
1,首先说下界面,这款软件的界面有些类似于QQ的界面,登录方式和QQ的方式是一样的,可以简单的说是一款给游戏用的QQ,就是里面的用户变成了游戏 2,功能,简单的说就是将你常玩的游戏放于这游戏平台的表面 ...
- week5-Internetwork Layer
Technology:Internets and Packets course Layer 2 : Internet Protocol The InterNetwork Internetwork La ...