2014年11月6日
摘要: 通信是一个比较重要的概念。只要存在多于一个执行单元(并发),就有可能存在通信。linux上的并发主要分为多进程(任务)和多线程。linux也提供了多个通信机制来支持不同进程或者不同线程之间的信息传递。通信方式主要包括管道,套接字,消息队列,共享内存,信号量,互斥量,信号(如kill -0检测进程是否... 阅读全文
posted @ 2014-11-06 18:34 魏加恩 阅读(642) 评论(0) 推荐(0) 编辑
  2014年10月13日
摘要: javascript是一门浏览器语言,对于后台攻城湿们。则是这样对其定义的1. js是一门前端语言,因为js通常是web中的view部分,用来渲染最终呈现给用户的页面。2. js是一门弱类型语言和解释性语言,没有使用编译器(编译器会检查语法错误,同样性质的比如php,ruby,python等。当然,... 阅读全文
posted @ 2014-10-13 18:59 魏加恩 阅读(343) 评论(0) 推荐(0) 编辑
  2014年9月20日
摘要: 堆栈是编程中很重要的概念,相信很多人也跳过坑,然后解决之后,继续跳坑。想整理堆栈的概念很久了。最近看了程序员自我修养,就一起整理一下吧。本文将从几个方面学习一下堆栈1. 堆栈概念2. 进程,线程概念3. 堆栈分配1. 堆栈概念 在32位系统,内存的寻址可以达到4G。 理论上,用户可以使用一个32位... 阅读全文
posted @ 2014-09-20 17:30 魏加恩 阅读(3231) 评论(0) 推荐(0) 编辑
  2014年9月17日
摘要: 记得开始学习golang的时候,boss给我发了一篇paper,讲的是函数式编程,那个时候看了一遍,懵懵懂懂,只有一个感觉,函数式编程怎么好像讲的都是数学公式(说句实话,我那个时候还真不理解boss为什么给我发那篇paper,只是想反正多看点东西总不会错)?最近一段时间,go用的比较多,业务逻辑让我... 阅读全文
posted @ 2014-09-17 18:43 魏加恩 阅读(691) 评论(0) 推荐(0) 编辑
  2014年9月16日
摘要: golang的map实现并不是像c++一样使用红黑树,而是使用了hashmap,用数组来实现。详细的实现后续补充,这里先做个备忘。在iterate整个map的时候,使用delete是安全的。这跟c++是不一样的,c++在delete的时候,会导致整棵树发生变化,所以不能在迭代的时候删除元素。那为什么... 阅读全文
posted @ 2014-09-16 16:42 魏加恩 阅读(2347) 评论(0) 推荐(0) 编辑
  2014年9月14日
摘要: golang中提供了goroutine,即所谓的协程编程。这里面有几个概念需要区分一下(by 魏加恩 本文地址http://www.cnblogs.com/weijiaen/p/3970856.html)1. 并发&并行 简单一句话,并发是n个事情同时发生,但是不是同时刻发生。that is, p... 阅读全文
posted @ 2014-09-14 12:03 魏加恩 阅读(1417) 评论(0) 推荐(0) 编辑
  2014年9月13日
摘要: 系统服务(这里不局限于golang写的后台服务,也包括c++,java等后台语言)需要考虑的两个问题1. 系统的资源使用情况(cpu利用率,内存分配情况等,runtime和syscall都提供了支持,这个是系统内部性质,往往是设计系统资源问题,需要在设计的时候慎重考虑)2. 系统的服务情况(就是服务... 阅读全文
posted @ 2014-09-13 22:57 魏加恩 阅读(3699) 评论(0) 推荐(0) 编辑