编程技术

ConcurrentLinkedQueue的实现原理分析

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

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

Python

Python Web框架之Django框架Model基础详解

本文实例讲述了PythonWeb框架之Django框架Model基础。分享给大家供大家参考,具体如下:model是关于你的数据的单一的,确定的信息来源。它包含您正在存储的数据的基本字段和行为。Django通过抽象化的模型层(models)为你的网络应用提供对于数据的结构化处理和操作处理,数据库相关的代码一般写在models.py中,Django支持sqlite3,MySQL,PostgreSQL等数据库,使用数据库API对数据库进行增删改查的操作。使用哪种

系统 2019-09-27 17:54:54 1905

Python

python 执行终端/控制台命令的例子

如下所示:importosos.system()os.popen().read().strip()#上面2种方法是python执行终端/控制台命令的常见方法#os.system('pingwww.baidu.com')执行成功返回0#ping=os.popen('pintwww.baidu.com').read().strip()返回输出结果#注:os.system()执行完成会关闭所以当执行后续命令需要依赖前面的命令时,请将多条命令写到一个os.syst

系统 2019-09-27 17:54:00 1905

Python

Python类的专用方法实例分析

本文实例讲述了Python类的专用方法。分享给大家供大家参考。具体分析如下:Python类可以定义专用方法,专用方法是在特殊情况下或当使用特别语法时由Python替你调用的,而不是在代码中直接调用(象普通的方法那样)。1.__init__类似于构造函数复制代码代码如下:#!/usr/local/bin/pythonclassStudy:def__init__(self,name=None):self.name=namedefsay(self):prints

系统 2019-09-27 17:53:14 1905

Python

Python字符串对象实现原理详解

在Python世界中将对象分为两种:一种是定长对象,比如整数,整数对象定义的时候就能确定它所占用的内存空间大小,另一种是变长对象,在对象定义时并不知道是多少,比如:str,list,set,dict等。>>>importsys>>>sys.getsizeof(1000)28>>>sys.getsizeof(2000)28>>>sys.getsizeof("python")55>>>sys.getsizeof("java")53如上,整数对象所占用的内存都是

系统 2019-09-27 17:52:10 1905

Python

python读取和保存图片5种方法对比

python读取和保存图片5种方法对比python中对象之间的赋值是按引用传递的,如果需要拷贝对象,需要用到标准库中的copy模块方法一:利用PIL中的Image函数这个函数读取出来不是array格式,这时候需要用np.asarray(im)或者np.array()函数。区别:np.array()是深拷贝,np.asarray()是浅拷贝copy.copy浅拷贝只拷贝父对象,不会拷贝对象的内部的子对象。copy.deepcopy深拷贝拷贝对象及其子对象例子

系统 2019-09-27 17:50:45 1905

Python

Python在cmd上打印彩色文字实现过程详解

前言在Windows上编写python程序时,有时候需要对输出的文字颜色进行设置,特别是日志显示,不同级别的日志设置不同的颜色进行展示可以直观查看。本文主要描述通过ctypes.windll.kernel32调用GetStdHandle()和SetConsoleTextAttribute()两个API实现来实现Windows控制台的彩色背景及彩色文字。基本概念描述首先分别介绍GetStdHandle()和SetConsoleTextAttribute()这

系统 2019-09-27 17:49:30 1905

Python

Python中正则表达式的用法实例汇总

正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:一、字符串替换1.替换所有匹配的子串用newstring替换subject中所有与正则表达式regex匹配的子串result,number=re.subn(regex,newstring,subject)2.替换所有匹配的子串(使用正则表达式对象)reobj=re.compile(regex)result,number=reobj.subn(news

系统 2019-09-27 17:46:38 1905

Python

Python socket网络编程TCP/IP服务器与客户端通信

Pythonsocket网络编程初学python,前段时间买了两本书《python编程从入门到实践》《Python核心编程第三版》,第一本书主要讲的是一些基本语法和一些基本的使用方法,而第二本则深入很多,自己看来也是一知半解,刚好看到了这部分网络编程,依然有好多不太理解的地方,不过想来通过自己不断的摸索,不断地搜寻资料学习,早晚应该会变得通透吧.......这部分主要使用的模块就是socket模块,在这个模块中可以找到socket()函数,该函数用于创建套

系统 2019-09-27 17:38:34 1905

Python

Python多线程实例教程

本文以实例形式较为详细的讲解了Python的多线程,是Python程序设计中非常重要的知识点。分享给大家供大家参考之用。具体方法如下:用过Python的人都会觉得Python的多线程很类似于Java的多线程机制,但是比JAVA的多线程更灵活。在早期的Python多线程实现中,采用了thread模块。例如:fromtimeimportctime,sleepfromthreadimportstart_new_threaddefloop1():print"ent

系统 2019-09-27 17:38:23 1905

Python

Python解析json文件相关知识学习

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。今天用py

系统 2019-09-27 17:37:51 1905

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 1905

编程技术

Textview加入Intent、表情,点击跳转Activity

(第二届Google暑期大学生博客分享大赛-2011Android成长篇)做过web开发的人应该都知道,在HTML里支持标签在文本里插入一个链接,点击后跳转;并且有标签可以插入图片。Android开发是否也支持呢?带着这个疑问,我们去APIDemos探索一下。OK,在com.example.android.apis.text.link这个类里,官方演示了TextView支持的一些链接,上个图:看来TextView是支持链接跳转的,不过做An

系统 2019-08-29 23:15:51 1905

编程技术

给明年依然年轻的我们

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

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

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 1904