摘要: 4.7 出让时间片我们可以在每个goroutine中控制何时主动出让时间片给其他goroutine,这可以使用runtime包中的Gosched()函数实现。实际上,如果要比较精细地控制goroutine的行为,就必须比较深入地了解Go语言开发包中runtime包所提供的具体功能。4.8.1 同步锁Go语言包中的sync包提供了两种锁类型:sync.Mutex和sync.RWMutex。Mutex是最简单的一种锁类型,同时也比较暴力,当一个goroutine获得了Mutex后,其他goroutine就只能乖乖等到这个goroutine释放该Mutex。RWMutex相对友好些,是经典的单写多读 阅读全文
posted @ 2013-07-25 17:04 ghost&240 阅读(659) 评论(0) 推荐(0) 编辑
摘要: 好吧,不想重新装(那耗费的时间真心伤不起…),找修改root密码的方法,结果还真找到了…首先在虚拟机启动时,在Grub界面按“e”进入编辑在linux /vmlinuz那行后面添加“init=/bin/bash”再按Ctrl+X以刚才编辑的配置启动这样启动后我们获得一个bash的shell 虽然这时获得了shell,但马上修改密码是不行的,因为现在还只是只读模式这时需要输入 mount -no remount,rw / 挂载为读写模式然后输入 passwd root --有些时候可能提示没有这个passwd命令,因此你要做的就是mount /usr 来修改密码,输入两次,确认后提示Succ.. 阅读全文
posted @ 2013-07-14 19:16 ghost&240 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 因为数据越来越多,完整备份一次数据需要的时间越来越长,虽然用了screen,但是也还是太麻烦。Linux默认的tar压缩支持增量备份, 百度了一下 来源linux备份真是太方便了,其实我们常用的tar就是很好的增量备份软件使用 tar -g 参数进行增量备份实验完整备份:#建立测试路径与档案mkdir testtouch test/{a,b,c};在test下生成三个文件#执行完整备份tar -g snapshot -zcf backup_full.tar.gz test#查看 tarball 内容tar ztf backup_full.tar.gztest/test/atest/btest/ 阅读全文
posted @ 2013-05-14 17:58 ghost&240 阅读(259) 评论(0) 推荐(0) 编辑
摘要: X. 数组里面的元素可以是函数Q: lua_pushliteral和lua_pushstring有何区别?A: 通常在push字符串字面值时使用lua_pushliteral,在push字符串指针是使用lua_pushstring。 原因是前者通过sizeof(字符串字面值)/sizeof(char)计算长度,而后者通过strlen计算长度。 因此前者只能push字符串字面值,但速度比后者快。而后者既可push字符串字面值,也可push字符串指针。Q: luaL_loadfile, luaL_loadstring, luaL_loadbuffer的区别?A: luaL_loadfile把文件内 阅读全文
posted @ 2013-04-08 21:28 ghost&240 阅读(675) 评论(0) 推荐(0) 编辑
摘要: 总结:不能用<=,不然会报错。当<与==拆分的时候,==(如果是最后一个if语句)必须要返回false。> tbl = {{4,1},{4,2},{3,3},{5,3},{5,1},{3,2},{5,4},{5,5},{5,1},{5,3},{3,3},{4,2},{3,2}}> function comp(a,b)>> if a[1] <= b[1] then>> return true>> else>> return false>> end>> end> table.sort(tbl 阅读全文
posted @ 2013-04-08 18:13 ghost&240 阅读(2829) 评论(0) 推荐(0) 编辑
摘要: 比较两个文件:$diff -urN 1.txt 2.txt > diff.patch比较两个目录:diff-ruNas1s2>s12.diff虚拟机linux挂载win下共享目录:在/etc/fstab 中添加:cifs users,noauto,noatime,iocharset=utf8,username=ghost 0 0Lua中函数中不能同时使用...与arg,除非在不同环境 阅读全文
posted @ 2012-12-19 22:29 ghost&240 阅读(281) 评论(0) 推荐(0) 编辑
摘要: str="123456"s=${str:1:3} #234 阅读全文
posted @ 2012-09-04 00:00 ghost&240 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -a该命令将显示所有的用户定制,其中选项-a代表“all”。也可以修改系统文件来调整core选项在/etc/profile通常会有这样一句话来禁止产生core文件,通常这种设置是合理的:# No core files by defaultulimit -S -c 0 > /de 阅读全文
posted @ 2012-09-03 23:57 ghost&240 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 经常会遇到这种情况,在windows下写的脚本,代码会在linux下无法执行,错误就是: : bad interpreter: No such file or directory 以前一直不知怎么解决,今天终于找到方法了。 1 原因 这通常都是由于windows下对文本文件的保存格式与unix下不同造成的,windows下回车的字符是’\r\n’,而linux下是’\n’。 2 解决方法 vi file 在命令模式下,输入 :set ff? 查看文件格式为dos或者unix :set ff=unix :wq 保存退出,即可。或者直接用命令:dos2unix xxx.sh 阅读全文
posted @ 2012-08-26 23:43 ghost&240 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 我相信做过项目的人,对软件版本管理的重要性是深有所知的。如果程序版本没有管理好,可能对整个项目来说就是致命的打击。所以希望大家在做项目时要注意对自己编写的程序进行一个良好的管理。前言:Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问 . 所谓版本控制系统 (VersionControl System) ,从狭义上来说,它是软件项目开发过程中用于储存我们所写的代码所有修订版本的软件,但事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理。一.如何安装git1. 用 sudo apt-get install git -core 来 阅读全文
posted @ 2012-08-01 15:44 ghost&240 阅读(1594) 评论(0) 推荐(0) 编辑