Python

Python的互斥锁与信号量

并发与锁a.多个线程共享数据的时候,如果数据不进行保护,那么可能出现数据不一致现象,使用锁,信号量、条件锁b.c.互斥锁1.互斥锁,是使用一把锁把代码保护起来,以牺牲性能换取代码的安全性,那么Rlock后必须要relase解锁不然将会失去多线程程序的优势2.互斥锁的基本使用规则:1importthreading2#声明互斥锁3lock=threading.Rlock();4defhandle(sid):#功能实现代码5lock.acquire()#加锁6#

系统 2019-09-27 17:48:09 1900

Python

Python使用psutil模块,做你的电脑管家

电脑管家也许大家都有这样的感觉,优化完美的电脑系统,你把电脑借给一个电脑小白使用上几天,等你拿回来的时候会发现,开机各种慢,乱七八糟的软件装了一大堆。那么我们如何使用Python来获取电脑的相关数据呢?不妨了解下psutil模块!psutil学习psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理

系统 2019-09-27 17:47:33 1900

Python

python装饰器与递归算法详解

1、python装饰器刚刚接触python的装饰器,简直懵逼了,直接不懂什么意思啊有木有,自己都忘了走了多少遍Debug,查了多少遍资料,猜有点点开始明白了。总结了一下解释得比较好的,通俗易懂的来说明一下:小P闲来无事,随便翻看自己以前写的一些函数,忽然对一个最最最基础的函数起了兴趣:defsum1():sum=1+2print(sum)sum1()此时小P想看看这个函数执行用了多长时间,所以写了几句代码插进去了:importtimedefsum1():s

系统 2019-09-27 17:38:08 1900

Python

在Python的Django框架中使用通用视图的方法

使用通用视图的方法是在URLconf文件中创建配置字典,然后把这些字典作为URLconf元组的第三个成员。例如,下面是一个呈现静态“关于”页面的URLconf:fromdjango.conf.urls.defaultsimport*fromdjango.views.generic.simpleimportdirect_to_templateurlpatterns=patterns('',(r'^about/$',direct_to_template,{'t

系统 2019-09-27 17:37:38 1900

编程技术

狼行成双

他们在风雪中慢慢走着。他和她,他们是两只狼。他的个子很大,很结实,刀条耳,目光炯炯有神,牙爪坚硬有力。她则完全不一样,她个子小巧,鼻头黑黑的,眼睛始终潮润着,有一种小南风般朦胧的雾气,在一潭秋水之上悬浮着似的。他的风格是山的样子,她的风格则是水的样子。刚才因为她故意捣乱,有只兔子在他们的面前眼巴巴地跑掉了。他是在他还是少年的时候就征服了她的。然后他们在一起相依为命,共同生活了整年。这期间,她曾一次次地把他从血气冲天的战场上拖下来,把伤疤累累昏迷不醒的他拖进

系统 2019-08-29 22:51:53 1900

编程技术

ConcurrentLinkedQueue的实现原理分析

1.引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下DougLea是如何使用非阻塞的方式来实现线程安全队列ConcurrentLinkedQueue的,相信从大师身上我们能学到不少并发编程的技

系统 2019-08-29 22:40:24 1900

编程技术

To套 or Not to 套? This is a question.

老张:我感觉,我这戴上套子好丑啊。你那也挺丑的吧?老王:我也是这个感觉,套子好丑啊。我靠!还是老程那个好看。老张:老程你没戴套子吧?老程:我戴套子了,好吧!老张:??老吴:你说老程没戴套子。老王:哦......老张::-/PS:其实讨论的主题是魅族系列MP3的硅胶套美观问题。To套orNotto套?Thisisaquestion.

系统 2019-08-29 22:17:14 1900

编程技术

给明年依然年轻的我们

今天是22岁的最后一天。几个月前,我从沃顿商学院毕业,用文凭上“最高荣誉毕业”的标签安抚了已经年过半百的老妈,然后转头辞去了毕业后的第一份工作,跟一家很受尊敬的公司、还有150万的年薪道了别,回到了上海,加入了“刚毕业就失业”俱乐部,开始了一天三顿盒饭的新生活,中间许多精彩剧情暂时略过。我肯定不是第一个做过这样事的人,也肯定不会是最后一个。所以在说自己的一些有趣故事前,我想借用大家(包括30岁甚至40岁以上的朋友)的一点时间和一点平和的心态,和大家分享过去

系统 2019-08-29 22:01:03 1900

编程技术

UNIX环境高级编程 进程间通讯

相关函数列表//管道#includeintpipe(intfd[2]);//标准I/O库提供了两个函数,实现的操作是创建一个管道fork一个子进程关闭未//使用的管道端,执行一个shell运行命令,然后等待命令终止//type类似fopen函数,有"r","w"或者"rw"等#includeFILE*popen(constchar*cmdstring,constchar*type);intpclose(FILE*fp)

系统 2019-08-12 09:29:37 1900

Python

新手如何发布Python项目开源包过程详解

本文假设你在GitHub上已经有一个想要打包和发布的项目。第0步:获取项目许可证在做其他事之前,由于你的项目要开源,因此应该有一个许可证。获取哪种许可证取决于项目包的使用方式。开源项目中一些常见许可证有MIT或BSD。要在项目中添加许可证,只需参照以下链接中的步骤,将LICENSE文件添加到项目库中的根目录即可:https://help.github.com/en/articles/adding-a-license-to-a-repository第1步:让

系统 2019-09-27 17:54:55 1899

Python

Python脚本实现DNSPod DNS动态解析域名

闲暇之余,在家里自建了个服务器,因为用的小区宽带,IP位动态分配。域名解析就是个问题,我的域名一般停放在DNSPod下。DNSPod有提供修改的API,就用Python简单的实现了一下动态解析。这样,就不用安装花生壳了。废话不说,看代码:#!/usr/bin/envpython#-*-coding:utf-8-*-importhttplib,urllib,urllib2importtimeimportsys,osimportreimportjsonuser

系统 2019-09-27 17:52:14 1899

Python

python代码编写计算器小程序

本文实例为大家分享了python计算器小程序的具体代码,供大家参考,具体内容如下importtkinterimporttkinter.messageboximportmathclassJSQ:def__init__(self):#创建主界面self.root=tkinter.Tk()self.root.minsize(270,330)self.root.maxsize(270,330)self.root.title('小可乐的计算器')#定义一个变量赋值给

系统 2019-09-27 17:50:09 1899

Python

opencv python 图像轮廓/检测轮廓/绘制轮廓的方法

图像的轮廓检测,如计算多边形外界、形状毕竟、计算感兴趣区域等。Contours:GettingStarted轮廓简单地解释为连接所有连续点(沿着边界)的曲线,具有相同的颜色或强度.轮廓是形状分析和物体检测和识别的有用工具NOTE为获得更好的准确性,请使用二值图,在找到轮廓之前,应用阈值法或canny边缘检测从OpenCV3.2开始,findContours()不再修改源图像,而是将修改后的图像作为三个返回参数中的第一个返回在OpenCV中,查找轮廓是从黑色

系统 2019-09-27 17:50:07 1899

Python

Python时间模块小结(time and datetime)

表示时间的三种方式在Python中,通常有三种方式表示时间:时间戳,元祖(struct_time),格式化时间字符串。时间戳(timestamp):1970年1月1日00:00:00开始按秒计算的偏移量,type(time.time())float类型格式化时间字符串(FormatString):'1999-12-06'时间元组(stuct_time):共有9个元素(年月日时分秒,一年中的第几周,一年中第几天等)几种时间格式的转换#结构化时间-->%a%b

系统 2019-09-27 17:49:55 1899

Python

Python selenium 发送长文本卡顿问题

通过Python\text{Python}Python仿真一个FireFoxorChrome\text{FireFoxorChrome}FireFoxorChrome浏览器,然后通过send_keys\text{send\_keys}send_keys发送数据到input\text{input}input文本框,当数据字节数比较小时,完全不会发现任何异常,但是当发送长文本时,会出现卡顿或者阻塞的现象,导致数据的实时性下降了很多。查看send_keys\te

系统 2019-09-27 17:49:52 1899