自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无心云

云无心以出岫,鸟倦飞而知还。

  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

原创 利用golang中的chan数据类型来实现简易连接池

chan其实是一个队列,而且是一个带有锁等待功能的队列,因此用它可以做很多任务队列相关的工作,比如说连接池。最近打算用go来写一个小的软件配置管理系统,使用中发现没有连接池,于是就是chan写了一个简单的,使用了一下发现相当好用。var MySQLPool chan *mysql.MySQLfunc getMySQL() *mysql.MySQL { if MySQLPool == nil { MySQLPool = make(chan *mysql.MySQL, MAX_P

2010-12-30 14:11:00 14039 4

原创 利用ulimit对资源进行限制

<br />大家都知道可以使用ulimit来查看当前的系统资源限制,比如<br />[babel@localhost ~]$ ulimit -a<br />core file size          (blocks, -c) unlimited<br />data seg size           (kbytes, -d) unlimited<br />scheduling priority             (-e) 0<br />file size             

2010-12-30 14:06:00 1086

原创 利用golang实现与boost中asio相同的功能

<br />今天在地铁上的时候突然想到,其实可以利用go中的channel轻易实现asio中的异步功能。其实asio主要借助了函数变量来将代码封存,而它之所以这么做是因为c和c++都不支持反映,这一点在go里根本就不存在任何问题,直接用反映就可以搞定。而在go中异步执行也会很简单,因为channle天然就是一个队列,我们一开始只需要指定channel的buffer(这一点比asio要更好用,因为通过buffer的大小我们可以解决异步程序无法解决的流量控制问题),然后将要执行的代码丢给channel,一个专门

2010-12-24 19:45:00 2923 2

原创 go语言中的interface与c++中的template

<br />这两天在使用c++的时候发现go语言中的interface其实与c++中的template有异曲同工之处。比如template同样只需要参数满足某些条件即可,而不需要参数一定符合继承关系,在这一点上go语言也是一样的。在c++中通过template可以部分实现继承所达到的效果,同样的道理利用interface在go中也可以实现继承。并且在很多情况下这更好用,因为一层层继承是一件很恶心的事情,这也是为什么java发展到今天越来越重量级的原因,继承使用的越多,程序将会越重量级。

2010-12-24 19:37:00 2227

原创 go语言中的反射的使用

<br />今天尝试了一下使用go语言中的反射来将struct类型转换成xml,结果相当纠结。首先去看了一下go的reflect包的实现,根据go的规则,首先应该去看一个NewXXX的方法,结果发现了一个叫NewValue的方法,通过这个方法我们能够得到一个Value接口。另外我们还应该注意到,go的反映实现中将Type和Value分开了,于是还有另外一个接口Type.<br />type Value interface { // Type returns the value's type.

2010-12-24 19:32:00 8513 3

原创 boost::bind

<br />其实boost::bind就是一个函数对象,这个函数对象可以有各种形式,因此它是可以嵌套的,就像表达式可以嵌套一样,但是注意,如果boost::bind嵌套了,那么它的意义就不同了,看下面的例子<br /> <br />boost::bind(func1, boost::bind(func2))<br /> <br />那么其实这个函数对象在执行时相当于func1(func2()),注意这里得到的是func2的返回值,而不是这个函数对象,如果需要使用函数对象的话,那么就需要使用boost::fu

2010-12-15 18:16:00 1670

原创 c++中的继承

<br />c++里的继承对每个类前面都必须加一个修饰,比如public, private,protected否则就会被当private处理

2010-12-03 14:39:00 550

原创 共享内存的权限问题

<br />今天测试一段代码时发现在创建共享内存时,如果没有对其他人设置写权限,那么以其他用户去运行时也无法拥有读权限,这个结果相当奇怪,上网搜索了很久也没有发现有类似的问题。

2010-12-01 17:53:00 3122 1

原创 一个诡异问题

<br />今天碰到一个很诡异的问题,当时想使用静态类成员常量,结果报错说只能在类里初始化数字型常量,于是我就把初始化挪到了外面,结果再次编译没有问题了,链接的时候会出错。后来找了半天发现是原来有一个.h文件,那个文件后来不用了,但是没有从svn中删除,于是这个文件原来已经被编译进.o了,因为每次都是make而没有make clean,因此这个文件定义一直存在,导致出现问题。<br /> <br />另外记录一个format规则:%.*s需要指定两个参数,一个表示拷贝多少长度,一个表示拷贝的源数据。

2010-12-01 16:15:00 622

Computer Science Handbook第二版.下

计算机科学的百科全书,包括:algorithms, architecture, computational science, graphics, human-computer interaction, information management, intelligent systems, net-centric computing, operating systems, programming languages, and software engineering

2010-02-03

Computer Science Handbook第二版.上

算是计算机科学百科全书了吧!包括:algorithms, architecture, computational science, graphics, human-computer interaction, information management, intelligent systems, net-centric computing, operating systems, programming languages, and software engineering

2010-02-03

Handbook of Data Structures and Applications

Alogrithm Design Manual一书中作者强烈推荐的数据结构方面的参考书,可以当做数据结构的工具书来用,可以查到各种基本数据结构及其用法。在网上找了很久才下到的,拿来和大家分享!

2009-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除