
个人
hellocsz
这个作者很懒,什么都没留下…
展开
-
多线程定时器
.NET Framework 提供了 4 种定时器。下边两个类是通用的多线程定时器:(1)System.Threading.Timer(2)System.Timers.Timer另外两个是专用的单线程定时器:(3)System.Windows.Forms.Timer (Windows Forms 的定时器)(4)System.Windows.Threading.DispatcherTimer (W...转载 2018-03-13 12:48:59 · 223 阅读 · 0 评论 -
进程间的通信
这个解释的好像更好一点socket主要包含通信协议,本地协议地址,本地主机端口,远端主机地址,远端主机端口。1、建立socketint socket(int domain, int type, int protocol);domain:使用的协议族,通常为PF_INET,表示互联网协议族type:指定socket类型SOCKET_STREAM(面向连接的流式socket)SOCKET_DGRAM(...转载 2018-03-11 21:35:34 · 142 阅读 · 0 评论 -
Python无关联进程共享数据
也没看太懂,先转过来Python官方文档Python实现多进程间通信的方式有很多种,例如队列,管道等。但是这些方式只适用于多个进程都是源于同一个父进程的情况。如果多个进程不是源于同一个父进程,只能用共享内存,信号量等方式,但是这些方式对于复杂的数据结构,例如Queue,dict,list等,使用起来比较麻烦,不够灵活。Manager是一种较为高级的多进程通信方式,它能支持Python支持的的任何数...转载 2018-03-11 21:28:43 · 347 阅读 · 0 评论 -
Python socket 进程间通信
还没看懂,转过来准备多看两遍基本用法Python socket 使用方法如下socket = socket.socket(family, type[, protocal])family代表地址家族,一般为AF_UNIX,AF_INET和AF_INET6。AF_UNIX用于同一台机器上的进程通信,AF_INET用于IPV4协议的TCP和UDP,AF_INET6用于IPV6协议;type代表套接字类...转载 2018-03-11 21:12:44 · 1127 阅读 · 0 评论 -
简单谈谈python中的Queue与多进程
转载地址 http://www.jb51.net/article/91199.htm最近接触一个项目,要在多个虚拟机中运行任务,参考别人之前项目的代码,采用了多进程来处理,于是上网查了查python中的多进程一、先说说Queue(队列对象)Queue是python中的标准库,可以直接import 引用,之前学习的时候有听过著名的“先吃先拉”与“后吃先吐”,其实就是这里说的队列,队列的构造的时候可以...转载 2018-03-11 18:15:53 · 5192 阅读 · 0 评论 -
线程池和进程池
进程池:进程池的使用有四种方式:apply_async、apply、map_async、map。其中apply_async和map_async是异步的,也就是启动进程函数之后会继续执行后续的代码不用等待进程函数返回。apply_async和map_async方式提供了一写获取进程函数状态的函数:ready()、successful()、get()。PS:join()语句要放在close()语句后面...转载 2018-03-11 18:08:18 · 763 阅读 · 0 评论 -
继承thread类
from threading import Threadimport timeclass MyThread(Thread) : def __init__(self, a,b,c) : self.a = a# 有几个参数,这里就写几行 self.b = b self.c = c ....... super(MyThre...转载 2018-03-11 17:24:32 · 1319 阅读 · 0 评论 -
python文件和目录操作方法大全
一、Python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3.函数用来删除一个文件:os.remove()4.删除多个目录:os.removedirs(r“c:\python”)5.检验给出的路径是否是一个文件:os.path....转载 2018-03-11 16:47:32 · 174 阅读 · 0 评论 -
运行系统命令
一、os模块1、os.system(cmd)在子终端运行系统命令,不能获取命令执行后的返回信息以及执行返回的状态import osos.system('date')# 2016年 06月 30日 星期四 19:26:21 CST1232、os.popen(cmd)不仅执行命令而且返回执行后的信息对象(常用于需要获取执行命令后的返回信息)import osnowtime = os.popen(...转载 2018-03-11 01:02:18 · 422 阅读 · 0 评论 -
Socket进程间通信
转载转载转载 转载转载转载 转载转载转载 转载转载转载 转载转载转载 转载转载转载最近初步学习了本地进程间通信的方式(PIPE、FIFO、message queue、semaphore、shared memary),计划按照“unix 环境高级编程”来学习socket,但是书本上来就讲socket的一些api,感觉一直没搞懂,通过今天的网络搜索,终于发现几篇不错的文章,再次整理一下,...转载 2018-03-11 21:37:44 · 803 阅读 · 0 评论 -
并发实现方案的性能比较
转载转载1. 前言偶然看到Erlang vs. Stackless python: a first benchmark,对Erlang和Stackless Python的并发处理性能进行了实验比较,基本结论认为二者有比较相近的性能。我看完产生的问题是,Stackless Python与Python的其他并发实现机制性能又会有多大区别呢,比如线程和进程。因此我采用与这篇文章相同的办法来对Stack...转载 2018-03-11 22:22:50 · 222 阅读 · 0 评论 -
如何学好编程
建议一:只有真正喜欢才能写好程序喜欢写程序,做程序员就是上天堂;不喜欢写程序,做程序员就是下地狱。程序员需要整天趴在电脑前,经常没日没夜的,非常辛苦,而且工作来不得半点虚假,少写一个标点符号都不行。喜欢的人,日子过得非常开心,每写一行代码,都会有新的成就,尤其当自己的作品被广泛应用的时候,那种自豪感油然而起。不喜欢的人,坐在电脑前极端无聊,被进度压得喘不过气来,天天为找bug改bug生气。只有喜欢...转载 2018-03-13 09:34:11 · 334 阅读 · 0 评论 -
需要等待多长时间
import time SECONDS_PER_DAY = 24 * 60 * 60 def doFunc(): print "do Function..." def doFirst(): from datetime import datetime, timedelta curTime = datetime.now() desTime = curTime.replace(h...转载 2018-03-12 21:50:28 · 253 阅读 · 0 评论 -
进程池的内部数据结构及不同的线程
Pool类可以提供指定数量的进程供用户调用,当有新的请求提交到Pool中时,如果池还没有满,就会创建一个新的进程来执行请求。如果池满,请求就会告知先等待,直到池中有进程结束,才会创建新的进程来执行这些请求。 Pool函数返回的进程池对象中有下面一些数据结构:self._inqueue 接收任务队列(SimpleQueue),用于主进程将任务发送给worker进程self._outqueue ...转载 2018-03-12 14:46:14 · 321 阅读 · 0 评论 -
Python多进程并发(multiprocessing)用法实例详解
python多线程的限制python多线程有个讨厌的限制,全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是“并行”。手册上的解释是为了保证对象模型的正确性!这个锁造成的困扰是如果有一个计算密集型的线程占着cpu,其他的线程都得等着....,试想你的多个线程中有这么一个线...转载 2018-03-12 14:30:42 · 10384 阅读 · 2 评论 -
并发 并行 同步 异步 多线程 阻塞 非阻塞的区别
同步与异步是对应的,它们是线程之间的关系,两个线程之间要么是同步的,要么是异步的。阻塞与非阻塞是对同一个线程来说的,在某个时刻,线程要么处于阻塞,要么处于非阻塞。阻塞是使用同步机制的结果,非阻塞则是使用异步机制的结果。1. 并发(concurrency):在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互...转载 2018-03-12 12:06:24 · 158 阅读 · 0 评论 -
Pool的四种方法比较:Python multiprocessing.Pool: Difference between map, apply, map_async, apply_async
multiprocessing.Pool is cool to do parallel jobs in Python. But some tutorials only take Pool.map for example, in which they used special cases of function accepting single argument.There are four c...转载 2018-03-12 00:40:31 · 1816 阅读 · 0 评论 -
join and daemon方法
Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别。1、join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这个线程时可以使用被调用线程的join方法。原型:join([timeout]) 里面的参数时可选的,代...转载 2018-03-12 00:04:02 · 176 阅读 · 0 评论 -
线程和进程创建 / 进程池(POOL),就是实现已经创建好的进程
进程池,就是实现已经创建好的进程主线程是什么:~~~就是我们的main函数,其实main函数就是我们的主线程的入口。程序运行的时候,系统会将我们的代码加载到内存当中,进入主线程,运行代码,程序就呼啦呼啦跑起来了。主线程,父线程,子线程的关系这里必须先说明一点,主线程和父线程。主线程:可以认为,主线程是程序的一条主线,一旦主线程结束,程序就结束了。其他所有线程都GAME OVER了。简单理解,主线程...转载 2018-03-11 22:51:00 · 649 阅读 · 0 评论 -
线程调用start()和调用run()的区别
start()让run()在新线程里面运行。你直接调用run()就是在当前线程运行了。 start()调用_thread的start_new_thread去运行一个bootstrap方法,在里面做一些准备工作后会调用run() ...转载 2018-03-11 00:48:50 · 418 阅读 · 0 评论 -
使用Sublime Text搭建python调试环境
dir(module) 查看内置函数的方法help()查看内置函数文件 ~~~~~~~~~~~~~~~~~~~~~~Sublime Text这枚神器,配合上插件也可以比较方便地搭建一个方便的类似IDE的python调试环境了。1、现在可以安装sublime text 3,然后安装package control,这玩意可以让你方便安装插件包。安装方法网上一砣。2、安装SublimeCodeIntel...转载 2018-03-11 00:28:47 · 408 阅读 · 0 评论 -
运行系统命令
os模块也许在subprocess之前,你可能听说过os模块。如:import oscmdstr = "some cmd command"os.system(cmdstr)123这种方式可以很轻松的执行Windows上的命令,但是缺点是: 不受控,没有返回结果。对于简单的需求而言还行,但是对于需要获取返回结果的就不太适用了。入门相比较subprocess, 执行一条命令就方便多了。比如实现与o...转载 2018-03-10 21:22:25 · 259 阅读 · 0 评论 -
Python格式化输出
python print格式化输出。1. 打印字符串print ("His name is %s"%("Aviad"))2.打印整数print ("He is %d years old"%(25))3.打印浮点数print ("His height is %f m"%(1.83))4.打印浮点数(指定保留小数点位数)print ("His height is %.2f m"%(1.83))tim...转载 2018-03-10 13:35:49 · 207 阅读 · 0 评论 -
urlparse的用法
>>> url=urlparse.urlparse('http://www.baidu.com/index.php?username=guol')>>> print urlParseResult(scheme='http', netloc='www.baidu.com', path='/index.php', params='', query='username...转载 2018-03-09 22:53:15 · 3084 阅读 · 0 评论 -
beatiful soup用法
#!/usr/bin/env Python# coding=utf-8import requests,osfrom bs4 import BeautifulSoup as bsfrom lxml import etree"""import sysreload(sys)sys.setdefaultencoding("utf-8")"""path=r"E:\historymaterials_day"f...转载 2018-03-15 23:45:50 · 380 阅读 · 0 评论 -
股票下载代码
import requests from bs4 import BeautifulSoup import traceback import re def getHTMLText(url): try: user_agent = '自己的浏览器头部信息' headers = {'User-Agent': user_agent} r...转载 2018-03-09 12:36:50 · 1380 阅读 · 0 评论 -
os.path模块
python os.path模块os.path.abspath(path) #返回绝对路径os.path.basename(path) #返回文件名os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。os.path.dirname(path) #返回文件路径os.path.exists(path) #路径存在则返回True,路径损坏返...转载 2018-03-09 12:33:05 · 130 阅读 · 0 评论 -
引号的 嵌套不能同时用单引号或双引号,否则就会出错
imagesLinks = tree.xpath('//table[@ip="123"]') imageslinkn = tree.xpath("//table[@ip="123"]")原创 2018-03-15 12:31:49 · 2849 阅读 · 0 评论 -
字符串字串查找find, index, rfind, rindex
字符串字串查找find, index, rfind, rindex原创 2016年08月10日 09:30:48标签:python6871, find()方法:查找子字符串,若找到返回从0开始的下标值,若找不到返回-1info = 'abca'print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0info = 'abca'print info.fin...转载 2018-03-09 12:32:57 · 755 阅读 · 0 评论 -
两种文件改名方法
import os,sysdir = 'C:\\Users\\............'filenames=os.listdir(dir)for a in xrange(len(filenames)): os.rename(dir+os.sep+filenames[a],(dir+os.sep+filenames[a]).split(".")[0]+"new"+'.txt')#coding:...原创 2018-03-09 12:33:16 · 3163 阅读 · 0 评论 -
打印时间
打印 现在的日期时间 datetime.datetime.now()打印时间戳 time.time() time_stamp.strftime('%Y.%m.%d-%H:%M:%S') #strftime可以自定义时间的输出格式,输出为time_stamp 2017.02.19-14:03:20Python 用有:%s、%d%s是字符串占位它可以接受数字或字符串%d 是只可以接收数...转载 2018-03-10 13:37:05 · 227 阅读 · 0 评论 -
多进程与多线程的使用
多线程在IO密集型的操作下似乎也没有很大的优势(也许IO操作的任务再繁重一些就能体现出优势),在CPU密集型的操作下明显地比单线程线性执行性能更差,但是对于网络请求这种忙等阻塞线程的操作,多线程的优势便非常显著了多进程无论是在CPU密集型还是IO密集型以及网络请求密集型(经常发生线程阻塞的操作)中,都能体现出性能的优势。不过在类似网络请求密集型的操作上,与多线程相差无几,但却更占用CPU等资源,所...转载 2018-03-10 15:55:43 · 189 阅读 · 0 评论 -
Python Windows 执行cmd命令(popen)
import os mystr=os.popen("tasklist") #popen与system可以执行指令,popen可以接受返回对象 mystr=mystr.read() #读取输出 print("hello",mystr) if mystr.find("QQ.exe") !=-1: print("发现QQ") else: print("QQ已死有事请烧...转载 2018-03-10 21:17:52 · 2576 阅读 · 0 评论 -
两个多进程实例
multiprocessing如果你打算编写多进程的服务程序,Unix/Linux无疑是正确的选择。由于Windows没有fork调用,难道在Windows上无法用Python编写多进程的程序?由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块。multiprocessing模块提供了一个Process类来代表一个进程对象...转载 2018-03-10 19:36:21 · 1698 阅读 · 0 评论 -
master进程和worker进程
master进程为主进程,该进程会创建Manager进程和Reactor线程等工作进/线程Reactor线程实际运行epoll实例,用于接受客户端的链接和发来的请求Manager进程是管理进程,该进程是为了创建管理所有的worker进程和TaskWorker进程,而TaskWorker则是manager直接生成的子进程。worker进程是工作进程,所有的业务逻辑都在该进程中进行,当Reactor...转载 2018-03-10 19:18:39 · 3271 阅读 · 0 评论 -
什么是 Nginx
Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 是由俄罗斯人 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev 在建立的项目时,使用基于 BSD 许可...转载 2018-03-10 19:17:34 · 731 阅读 · 0 评论 -
python进程池剖析(一)
python进程池剖析(一) python中两个常用来处理进程的模块分别是subprocess和multiprocessing,其中subprocess通常用于执行外部程序,比如一些第三方应用程序,而不是Python程序。如果需要实现调用外部程序的功能,python的psutil模块是更好的选择,它不仅支持subprocess提供的功能,而且还能对当前主机或者启动的外部程序进行监控,比如获取网络...转载 2018-03-10 18:42:42 · 200 阅读 · 0 评论 -
多进程
要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,...转载 2018-03-10 18:04:26 · 148 阅读 · 0 评论 -
os.fork() and os.getpid()
程序每次执行时,操作系统就会创建一个新的进程来运行程序指令。进程还可以调用os.fork,要求操作系统新建一个进程。“父进程”是调用os.fork的进程。父进程所创建的任何进程都是子进程。每个进程都有一个不重复的“进程ID号”,或称“pid”,它对进程进程进行标识。进程调用fork函数时,操作系统会新建一个子进程,它本质上与父进程完全相同。子进程从父进程继承了多个值的拷贝,比如全局变量和环境变量...转载 2018-03-10 17:32:40 · 1215 阅读 · 0 评论 -
bs4使用过程中的小问题
获取标签列表:aa=bs2.find("table",id="###").children for i in aa: bstring=i# print i print type(i)<class 'bs4.element.NavigableString'><class 'bs4.element.Tag...转载 2018-03-16 18:20:59 · 975 阅读 · 0 评论