自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 golang sync mutex 互斥锁

golang的多线程固然好用,但是有时候需要对数据进行上锁,防止数据被其它线程更改。那么sync包下的Mutex非常好用。Mutex是一个互斥锁。可以作为struct的一部分,这样这个struct就会防止被多线程更改数据。来个例子:package mainimport ( "fmt" "sync" "time")type User struct { Nam

2014-05-07 13:44:33 8095 1

原创 golang sync WaitGroup

刚才看golang的sync的包,看见一个很有用的功能。就是WaitGroup。先说说WaitGroup的用途:它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。WaitGroup总共有三个方法:Add(delta int),Done(),Wait()。简单的说一下这三个方法的作用。Add:添加或者减少等待gorou

2014-05-06 20:18:48 1351

原创 too many open files

最近两天可以说与这个too many open files是较上劲了。前段时间,redis服务器出现这个错误,更改了服务器的ulimit的限制。最近go开发的API的服务器也是出现了同样的错误。整的很郁闷啊。不过总得来说,还是学到了很多知识。在此做一个总结。在linux服务器上,对于打开文件的描述符是有限制的。默认的1024。可以查看ulimit的设置。ulimit的讲述在网上很多了。可以

2014-01-15 07:58:32 797

原创 go 服务器出现too many open files的错误

最近两天服务器总是会出现too many open files的错误。真的很是头疼。在本地开发环境中,也用了压力测试,发现问题不存在。但是为什么服务器会出现这种错误,有些闹不明白。本来想用ulimit更改一下打开文件的描述符。但这样子觉得并不解决问题。好吧,那就查一下更本的原因。服务器是亚马逊,开发语言:golang,数据库:mongo,mysql。缓存:redis。测试脚

2014-01-15 07:42:54 7102 2

原创 Redis too many open files error

最近公司的API总是莫名其妙的报告一些redis 打开文件太多的错误。今天老板终于下定决心,必须解决这个bug。经过测试,问题终于出现了。

2014-01-09 20:54:56 4737

原创 shell结构化命令if-then-elif-fi

在编写shell中,很少有脚本是顺序操作,大部分的时候需要进行逻辑判断。先看一个简单的格式:if commandthen commandsfibash shell会运行if后面的命令。如果该命令的退出状态码是0,then后的命令就会执行。否则不执行。来个简单的例子:#!/bin/shworkPath=/Users/liguosong/work/shellif cd $work

2014-01-05 20:57:57 1580

原创 Shell 反引号 `

shell脚本中的反引号“`”,这个符号通常在tab键的上面那个键,同时按住shift输入。在shell中反引号,可以讲命令的输出赋给变量。在shell编程中,很多时候,shell 命令的输出需要作为下面命令的参数。那这个反引号就会排上用场了。这个例子很简单,就是按照年月日,创建文件夹。代码如下:#!/bin/shDATE=`date +%Y%m%d`mkdir $DATE

2014-01-04 14:40:33 969

原创 Shell 函数

今天元旦,宅在家里,闲着看了看shell,下面将所学的分享一下。在开始编写复杂的shell脚本时,有时候你会发现在编写很多重复的代码。bash shell支持用户定义的函数。可以将shell脚本的代码进行封装。方便以后多次使用和维护。有两种方式可以创建bash shell的函数:方式一:采用关键字function,后面跟着函数名称。例如:#!/bin/bashfunction h

2014-01-01 19:46:27 679

空空如也

空空如也

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

TA关注的人

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