【python – 线程局部是否意味着线程安全?】教程文章相关的互联网学习教程文章

python多线程应用介绍

python可以方便地支持多线程。可以快速创建线程、互斥锁、信号量等等元素,支持线程读写同步互斥。美中不足的是,python的运行在python 虚拟机上,创建的多线程可能是虚拟的线程,需要由python虚拟机来轮询调度,这大大降低了python多线程的可用性。我们经今天用了经典的生产者和消费者的问题来说明下python的多线程的运用 上代码: 代码如下: #encoding=utf-8 import threading import random import time from Queue import Que...

多线程爬虫批量下载pcgame图片url保存为xml的实现代码

代码如下:#coding=gbkfrom xml.dom import minidom,Nodeimport urllib2,re,osdef readsrc(src): try: url = urllib2.urlopen(src) content = url.read()#.decode(utf-8) return content except: print error return Nonedef pictype(content): 通过抓取网站导航栏,获得网站的图片类型 返回列表,每个列表元素为一个字典,addr代表图片类型对于的链接,name代表图片类型的名称...

Python中用Ctrl+C终止多线程程序的问题解决

代码如下:#!/bin/env python # -*- coding: utf-8 -*- #filename: peartest.py import threading, signal is_exit = False def doStress(i, cc): global is_exit idx = i while not is_exit: if (idx < 10000000): print "thread[%d]: idx=%d"%(i, idx) idx = idx + cc else: break print "thread[%d] complete."%i def handler(signum, frame): global ...

Python代理抓取并验证使用多线程实现

没有使用队列,也没有线程池还在学习只是多线程 代码如下: #coding:utf8 import urllib2,sys,re import threading,os import time,datetime 这里没有使用队列 只是采用多线程分发对代理量不大的网页还行但是几百几千性能就很差了 def get_proxy_page(url): 解析代理页面 获取所有代理地址 proxy_list = [] p = re.compile(r(.+?).*?(.+?).+?(.+?)(<span.+?)?) try: res = urllib2.urlopen(url) except urllib2.URLError: print ...

python线程池的实现实例

直接上代码: 代码如下:# -*- coding: utf-8 -*- import Queue import threadingimport urllibimport urllib2import os def down(url,n): print item +str(n)+ start filename=urllib2.unquote(url).decode(utf8).split(/)[-1] urllib.urlretrieve(url, filename) print item +str(n)+ finish def worker(): while True: i = q.get() url=i[0] n=i[1] down(url,n) q.task_don...

python多线程http下载实现示例

测试平台 Ubuntu 13.04 X86_64 Python 2.7.4 花了将近两个小时, 问题主要刚开始没有想到传一个文件对象到线程里面去, 导致下载下来的文件和源文件MD5不一样,浪费不少时间. 有兴趣的同学可以拿去加上参数,改进下, 也可以加上断点续传.代码如下:# -*- coding: utf-8 -*-# Author: ToughGuy# Email: wj0630@gmail.com# 写这玩意儿是为了初步了解下python的多线程机制# 平时没写注释的习惯, 这次花时间在代码里面写上注释也是希望...

python线程锁(thread)学习示例

代码如下:# encoding: UTF-8import threadimport time# 一个用于在线程中执行的函数def func(): for i in range(5): print func time.sleep(1) # 结束当前线程 # 这个方法与thread.exit_thread()等价 thread.exit() # 当func返回时,线程同样会结束# 启动一个线程,线程立即开始运行# 这个方法与thread.start_new_thread()等价# 第一个参数是方法,第二个参数是方法的参数thread.start_new(func, ()) # ...

python支持断点续传的多线程下载示例

代码如下:#! /usr/bin/env python#coding=utf-8 from __future__ import unicode_literals from multiprocessing.dummy import Pool as ThreadPoolimport threading import osimport sysimport cPicklefrom collections import namedtupleimport urllib2from urlparse import urlsplit import time # global locklock = threading.Lock() # default parametersdefaults = dict(thread_count=10, buffer_size=10*1024, block_...

Python使用代理抓取网站图片(多线程)

一、功能说明:1. 多线程方式抓取代理服务器,并多线程验证代理服务器ps 代理服务器是从http://www.cnproxy.com/ (测试只选择了8个页面)抓取2. 抓取一个网站的图片地址,多线程随机取一个代理服务器下载图片二、实现代码 代码如下:#!/usr/bin/env python#coding:utf-8 import urllib2import reimport threadingimport timeimport random rawProxyList = []checkedProxyList = []imgurl_list = [] #抓取代理网站portdicts ={v:"3"...

python单线程实现多个定时器示例

单线程实现多个定时器 NewTimer.py 代码如下:#!/usr/bin/env python from heapq import *from threading import Timerimport threadingimport uuidimport timeimport datetimeimport sysimport math global TimerStampglobal TimerTimesclass CancelFail(Exception): pass class Slot(object): def __init__(self, period=0, interval=1, function=None, args=[], kwargs={}): self.period = period self.pc =...

Python实现多线程下载文件的代码实例

实现简单的多线程下载,需要关注如下几点:1.文件的大小:可以从reponse header中提取,如“Content-Length:911”表示大小是911字节2.任务拆分:指定各个线程下载的文件的哪一块,可以通过request header中添加“Range: bytes=300-400”(表示下载300~400byte的内容),注意可以请求的文件的range是[0, size-1]字节的。3.下载文件的聚合:各个线程将自己下载的文件块保存为临时文件,所有线程都完成后,再将这些临时文件按顺序聚合...

python创建线程示例

代码如下:import threadingfrom time import sleep def test_func(id): for i in range(0,5): sleep(1) print(thread %d is running %d % (id,i)) threads = []for i in range(0,3): t = threading.Thread(target=test_func, args=(i,)) threads.append(t) for t in threads: t.start() for t in threads: t.join()从输出结果可以看到,3个线程是交替的执行的

python实现多线程采集的2个代码例子

代码一:#!/usr/bin/python # -*- coding: utf-8 -*- #encoding=utf-8import threading import Queue import sys import urllib2 import re import MySQLdb# # 数据库变量设置 # DB_HOST = 127.0.0.1 DB_USER = "XXXX" DB_PASSWD = "XXXXXXXX" DB_NAME = "xxxx"# # 变量设置 # THREAD_LIMIT = 3 jobs = Queue.Queue(5) singlelock = threading.Lock() info = Queue.Queue()def workerbee(inputlist):for x in xrange(THREAD_LIMIT)...

Python中多线程thread与threading的实现方法

学过Python的人应该都知道,Python是支持多线程的,并且是native的线程。本文主要是通过thread和threading这两个模块来实现多线程的。 python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用。 这里需要提一下的是python对线程的支持还不够完善,不能利用多CPU,但是下个版本的python中已经考虑改进这点,让我们拭目以待吧。 threading模块里面主要是对一些线程的操作对象化了...

python多线程编程中的join函数使用心得【图】

今天去辛集买箱包,下午挺晚才回来,又是恶心又是头痛。恶心是因为早上吃坏东西+晕车+回来时看到车祸现场,头痛大概是烈日和空调混合刺激而成。没有时间没有精神没有力气学习了,这篇博客就说说python中一个小小函数。 由于坑爹的学校坑爷的专业,多线程编程老师从来没教过,多线程的概念也是教的稀里糊涂,本人python也是菜鸟级别,所以遇到多线程的编程就傻眼了,别人用的顺手的join函数我却偏偏理解不来。早上在去辛集的路上想这...