摘要: 2015年12月,也就是在一年前,开发了半年的云存储服务上线。这对于付出了半年努力的我们来说,是一件鼓舞人心的事件。因为这个服务在我们手上经历了从0到1的过程。这是我们自己的一小步,却是整个云存储服务的一大步。 我们开发的是一款视频监控类的软件,分为视频采集端跟观看端。采集端可以是专业摄像头,手机, 阅读全文
posted @ 2016-12-21 20:53 myd620 阅读(10771) 评论(36) 推荐(42) 编辑
摘要: 在某些应用环境下面,一个类只允许有一个实例,这就是著名的单例模式。单例模式分为懒汉模式,跟饿汉模式两种。 首先给出饿汉模式的实现 在实例化m_instance 变量时,直接调用类的构造函数。顾名思义,在还未使用变量时,已经对m_instance进行赋值,就像很饥饿的感觉。这种模式,在多线程环境下肯定 阅读全文
posted @ 2016-12-05 12:04 myd620 阅读(16029) 评论(2) 推荐(2) 编辑
摘要: 多线程编程中,需要对共享变量进行加锁。但是频繁地加锁,会对程序效率有很大影响。在某些读多写少的场景下,多个线程进行读数据时,如果都加互斥锁,这显然是不必须的。于是读写锁便应运而生。 读写锁的加锁规则: 1 如果没有加写锁时,那么多个线程可以同时加读锁;如果有加写锁时,不可以加读锁 2 不管是加了读锁 阅读全文
posted @ 2016-12-03 17:04 myd620 阅读(2241) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章中,谈了一些网络编程的基本概念。在现实使用中,用的最多的就是I/O复用了,无非就是select,poll,epoll 很多人提到网络就说epoll,认为epoll效率是最高的。单纯的这么认为,其实有失偏颇。epoll固然高效,可是它是怎么做到高效的,它到底比select或poll优异在哪儿 阅读全文
posted @ 2016-11-30 22:51 myd620 阅读(2693) 评论(0) 推荐(0) 编辑
摘要: 网络编程是编写服务器程序不可或缺的部分。 高性能的服务器程序一定都会有好的网络处理程序,下面就来谈一谈网络编程的基本概念。 凡是网络编程,几乎都离不开socket。socket分为阻塞与非阻塞两种。阻塞的socket在调用读写接口是,会一直阻塞到socket上有可读数据,或者socket可以写入数据 阅读全文
posted @ 2016-11-28 21:21 myd620 阅读(1380) 评论(3) 推荐(0) 编辑
摘要: 在微信公众号中关注“微信后台团队”,本文所转载的文章几乎都来自公众号内发表的文章。觉得文章写的不错,就罗列出来,供平时参考学习 1 从0到1:微信后台系统的演进之路 2 万亿级调用系统:微信序列号生成器架构设计及演变 3 MySQL半同步复制的数据一致性探讨 4 谈谈PhxSQL的设计和实现哲学(上 阅读全文
posted @ 2016-11-20 13:27 myd620 阅读(917) 评论(0) 推荐(0) 编辑
摘要: 即时通信,服务器,架构 阅读全文
posted @ 2016-11-19 17:51 myd620 阅读(18250) 评论(50) 推荐(27) 编辑
摘要: 缓存系统:memcached(group cache)、redis、mongodb、Couchbase(CouchDB、Membase、CouchOne) http缓存:varnish、nginx、traficserver、squid 负载均衡:lvs、f5、nginx、haproxy 代理:ngi 阅读全文
posted @ 2016-10-28 16:46 myd620 阅读(1130) 评论(1) 推荐(3) 编辑
摘要: 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 [rocrocket@rocrocket programming]$ cat seq.txtbananaapplepearorange[rocrocke 阅读全文
posted @ 2016-10-27 10:20 myd620 阅读(5689) 评论(0) 推荐(0) 编辑
摘要: 算一算工作也有三年半了,第一次在博客园发表文章, 不想谈与技术相关的东西, 写写自己的心路历程吧,以及对自己职业生涯的一些总结。 第一份工作,在大公司,以世界500强著称。大部分在这个行业里混的,多多少少都会跟它打多交道。毕业时的年少轻狂,正打算着进去建功立业,然而事与愿违,工作并非自己想象的那样。 阅读全文
posted @ 2016-10-22 17:13 myd620 阅读(536) 评论(2) 推荐(0) 编辑