编程技术

ConcurrentLinkedQueue的实现原理分析

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

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

编程技术

最近成了叨客 - 注册了饭否,叽歪网

twitter在国外发展迅猛,被众人看好。于是国内模仿者鹊起。饭否,叽歪,嘀咕等。其实网站都发展一段时间了,现在注册都有点落伍了。呵呵。功能都还不错,都支持和QQ,手机,MSN等绑定,适合中国用户,甚至叽歪还能和飞信绑定,不过昨天绑定飞信,“叽歪小弟”一直没自动验证通过我。呵呵。初体验感觉基本是纯模仿twitter,自己创新的东西如功能,界面等还比较少。目前叽歪比较领先,嘀咕网也奋起直追,饭否要加把劲啊,呵呵。可以通过QQ85630414在叽歪上关注我,呵

系统 2019-08-12 09:30:17 2013

编程技术

QT-everywhere-opensource-src-4.8.0 移植arm飞

此次记录的是我移植的心酸历程!原帖在http://bbs.witech.com.cn/thread-14486-1-1.html,今将其贴到自己的博客里。我现在在ubuntu11.10上,已经把qt-everywhere-opensource-src-4.8.1.tar编译好了,目录在/usr/local/arm/qt-embeded-arm-4.8.0,在相应的arm6410Ok板子上也建了相应的目录,有两个问题很困惑我:第一:有的教程说只把PC上编译好

系统 2019-08-12 09:29:50 2013

Python

详解Python中的测试工具

当我们在写程序的时候,我们需要通过测试来验证程序是否出错或者存在问题,但是,编写大量的测试来确保程序的每个细节都没问题会显得很繁琐。在Python中,我们可以借助一些标准模块来帮助我们自动完成测试过程,比如:unittest:一个通用的测试框架;doctest:一个更简单的模块,是为检查文档而设计的,但也非常适合用来编写单元测试。下面,笔者将会简单介绍这两个模块在测试中的应用。doctestdoctest模块会搜索那些看起来像是python交互式会话中的代

系统 2019-09-27 17:55:04 2012

Python

python 字符串转列表 list 出现\ufeff的解决方法

如下所示:#文件内容lisilock=open("lock_info.txt","r+",encoding="utf-8")lock_line=lock.readline()lock_list=lock_line.split(",")print(lock_list)y=lock_line.encode('utf-8').decode('utf-8-sig')print(y)#打印结果如下['\ufefflisi']lisi以上这篇python字符串转列表l

系统 2019-09-27 17:55:03 2012

Python

python笔记1,2总结

阅读更多注:笔记2已补全#首字母大写.title()#.append()方法:可在列表或元组末尾添加元素主要在for循环中常用#在提列表元素是的索引是从0开始,负数表示倒数,没有索引则默认是第一个元素或者最后一个元素#列表排序详细在笔记1中###for循环##可参考笔记2#for**in**:下的代码缩进则表示要循环,没缩进则不循环#“:”一定要带上#创建不同类型的数值列表a=list(range(2,5,1))#(A,B,c)指的是从A开始数(包括A)往

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

Python

python下numpy的基础使用

#!/usr/bin/python#coding:utf-8importnumpyasnpa=np.array([1,2,3])b=np.array([[1,2,3],[4,5,6],[7,8,9]])#shape是维度,dtype是元素的类型printa.shapeprinta.dtype#使用函数生成等差数列数组x1=np.arange(1,11,2)x2=np.linspace(1,9,5)printx1,x2#求数组中的最大值和最小值printnp

系统 2019-09-27 17:54:45 2012

Python

day005-python基础数据类型之课后作业讲解

1、元素的分类需求:有如下集合[11,22,33,44,55,66,77,88,99,90……],将所有大于66的值保存在字典的第一个key中,将小于66的值保存在第二个key的值中代码实现:1#定义一个list列表2li=[11,22,33,44,55,66,77,88,99,90]3#定义空字典4dic={"k1":[],"k2":[]}5foriinli:6ifi<=66:7dic['k1'].append(i)8else:9dic['k2'].ap

系统 2019-09-27 17:54:43 2012

Python

Python图像处理之图片文字识别功能(OCR)

OCR与Tesseract介绍将图片翻译成文字一般被称为光学文字识别(OpticalCharacterRecognition,OCR)。可以实现OCR的底层库并不多,目前很多库都是使用共同的几个底层OCR库,或者是在上面进行定制。Tesseract是一个OCR库,目前由Google赞助(Google也是一家以OCR和机器学习技术闻名于世的公司)。Tesseract是目前公认最优秀、最精确的开源OCR系统。除了极高的精确度,Tesseract也具有很高的灵活

系统 2019-09-27 17:53:50 2012

Python

Python Queue模块详解

Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。创建一个“队列”对象importQueueq=Queue.Queue(maxsize=10)Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。将一个值放入队列中q.put(10)调用队列对

系统 2019-09-27 17:53:36 2012

Python

为python设置socket代理的方法

首先,你得下载SocksiPy这个.解压出来之后里面会有一个socks.py文件.然后你可以把这个文件复制到python安装目录里面的Lib\site-packages中.或者把这个文件复制到程序所在的目录中.然后就可以再程序中使用socket代理来编写程序了.下面是示例代码importsocksimportsocketsocks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,"127.0.0.1",8088)socket

系统 2019-09-27 17:53:08 2012

Python

使用python为mysql实现restful接口

最近在做游戏服务分层的时候,一直想把mysql的访问独立成一个单独的服务DBGate,原因如下:请求收拢到DBGate,可以使DBGate变为无状态的,方便横向扩展当请求量或者存储量变大时,mysql需要做分库分表,DBGate可以内部直接处理,外界无感知通过restful限制对数据请求的形式,仅支持简单的get/post/patch/put进行增删改查,并不支持复杂查询。这个也是和游戏业务的特性有关,如果网站等需要复杂查询的业务,对此并不适合DBGate

系统 2019-09-27 17:52:45 2012

Python

python学习笔记——函数和模块

函数这么重要的东西自然少不了。那么在python中是怎么定义的呢?defcgg(name):print("haha%s"%name)def是定义的意思,而cgg是函数名,name是参数。当然了,有了函数吗,自然少不了函数的返回值。那么这里用的依然是return。defcgg(a,b):returna+b模块一个小例子:importtimeprint(time.asctime())这个可以显示现在的时间。而这个time就是一个模块,包括之前的turtle也是

系统 2019-09-27 17:51:49 2012

Python

经典的python入门书籍,每位初学者必备书籍

全民学python的热潮已经开启,然而,对于这种情况,还是有很多小伙伴私信我python到底该怎么入门?没接触过编程能学会吗?现在网上学习资料一搜一大把,正因为资料多了导致我们不知道如何是好!一个朋友问我:有个朋友要学习python,她属于那种特别能啃书的,让我推荐。我学python都是无师自通的,没有看过什么书,因此无法给她推荐,问我有什么意见?他那个朋友是零基础的,ctrl+c、ctrl+v用的贼溜。除此之外,计算机算是零基础了。对此我就感觉有点头疼了

系统 2019-09-27 17:51:19 2012