- 博客(63)
- 资源 (3)
- 收藏
- 关注
原创 C++ 多线程开发技巧 4
互斥量过多:数据类的设计 对每个变量都使用一个MUTEX 进行保护当然是有问题的,因此,可以把逻辑上相关较强的数据都放到一个类中,然后使用一个 MUTEX 对这个类进行保护,这样就可以极大的减少 MUTEX 的数量,同时程序的可读性和可维护性都得到很大的提升。 看个例子。 #include "..\..\port\port.h"#i
2013-04-17 11:28:27 582
原创 C++ 多线程开发技巧 3
新的问题 保护原则的正确性已经验证,但是在实现时,我们发现了两个新问题。 第一个是刚才的实现中,似乎打破了我们以前说的对称原则,仔细看代码会发现在Modify 函数中,mutex_lock 被调用了一次,而mutex_unlock 却被调用了2次。这个问题虽然是个小问题,但是对于完美主义的我而言,却是个大问题。当然,在培训的实践中,也确实发现部分学员很容易忘
2013-04-16 17:07:59 663
原创 C++ 多线程开发技巧 2
看个打破保护原则的例子#include #include static DWORD WINAPI MyThread( LPVOIDlpParam ); static int num = 20; int main(int argc, char *argv[]){ HANDLEhThread[4]; inti;
2013-04-16 16:10:31 612
原创 C++ 多线程开发技巧 1
1 为什么要多线程 第一种情况很好理解,那就是在多CPU 时,使用多线程可以提高CPU的使用率。 第二种情况更常见,在单CPU单核的计算机上,使用多线程技术,也可以把进程中负责IO处理、人机交互而常备阻塞的部分与密集计算的部分分开来执行,编写专门的线程执行密集计算,从而提高了程序的执行效率。举一个例子说明一下:比如网络视频播放器,它有以下几个工作需要同时
2013-04-16 15:26:18 737
原创 代码review的心得
1. WHY 代码review 是提高开发团队代码质量的一个非常好的技术手段,同时也是了解和培养新手程序员的一个非常好的方法,我个人的建议是所有的开发团队都应该努力推广代码review这一技术实践。 2. WHO原则上,如果有条件,应该是团队中所有人相互进行代码review,或者说,确保每行代码都被除作者以外的人review过。也就是说,不仅仅团队L
2013-03-27 18:01:33 1404
原创 程序员的实践论
我个人对实践论的理解,总结起来就是一句话:人们认识事物的过程是实践、总结、再实践、再总结、直到完全掌握。虽说是一句话,可是却高度的概括了人们认识一切规律的过程。作为一个程序员,写好程序是本分,也是养家糊口的无奈。我以为程序员要写好程序,其实也是一个不断实践“实践论”的过程。 程序员要想写好程序,光看书可不行,首先第一条是要“实践”起来,即要多写程序。各种书要看,但最重要是要实践
2013-03-05 15:19:29 758
原创 “好了”式工作方法
根据我个人的观察和总结,研发项目经理在项目例会上一般有两种提问方式,一种是“小张,你们team这周有何进展”,另一种是:“小李,那个xxx功能好了没有”,今天就这两种提问方式随便瞎扯几句。 根据我个人的对比观察,小张在例会上的表现明显要比小李好,具体表现在小张在回答问题的时候可以滔滔不绝,比如本周xxx工作进展到百分之60了,xxx工作也取得了某些进展等等,给领导的感觉非常好,
2013-02-16 17:40:47 425
原创 关于demo-test-sample的随笔
发现很多工程师经常把demo、test和sample这三个概念搞混淆,这里我觉得有必要详细说一下这三者的细微差别。demo 程序顾名思义,即演示程序,它的使用者是演示者,一般可能是销售、产品经理等,他们用演示程序给客户演示开发工程师研发模块的功能和性能,重点是展示程序的优点和优势,对于模块的缺点,则能掩盖就掩盖,正常情况下,哪个公司都不可能把程序的bug和不足主动展示给客户看。Test 程
2013-01-31 11:59:54 2531
原创 关于学习的随笔
前几天有人告诉我说:你说的这些技巧和规则固然是不错的,你说的时候我也懂,可是到自己做的时候就是另外一回事了,往往项目一启动,首先关注的是如何尽快“搞定”,至于规则,那只好先靠边站了。她问我这种情况怎么办,我有没有办法。 对这个问题,我是有办法的,事实上,我的办法并不高明,并且每个人都知道和实践过,那就是枯燥和重复的训练,除此之外,实在没有别的好办法了。 好的
2013-01-29 12:42:36 2154
原创 编程规则与高质量代码
常常听到程序员抱怨他接手的代码比较“烂”,维护起来很吃力,甚至说什么“还不如重新做一遍”等等。这一现象很大程度是因为代码的可读性比较差,而到底应该怎样提高代码的可读性呢? 我们先来做一个分析,那就是代码为什么普遍存在这可读性不好的弊端。我曾经注意过一个现象,那就是同一个业务逻辑,不同的工程师有着不同的实现方式,即,实现该业务逻辑的代码因为工程师的不同而不同,甚至,同一个工程师因
2013-01-28 00:32:25 550
原创 关于编程中的命名问题
好的代码应该是很好维护的,而代码的可维护性很大程度取决于它的可读性,而提高代码可读性最重要的事情就是重视程序中所有类、函数、变量的命名。以我个人的观点,写程序,最重要的事情就是命名,把命名这个环节做好,好代码自然就来了,反之,不重视命名,或者说胡乱命名,那要想得到好的代码,则是不可能的事情。 编程中命名既然如此重要,可是要做好却是十分的不容易,下面我总结一些关于命名的规则,如果
2013-01-25 14:23:37 1066 1
原创 接口设计漫谈之回调函数1
回调函数一 最近看到一个USB设备数据通讯的接口设计,觉得很典型,值得拿出来说一下。 接口很简单,核心的就是两个函数,如下: ------------------------------------------------------------------------------Int SendCommand(void *pCmd, int
2013-01-24 13:42:42 511
转载 Ubuntu Linux 解决 bash ./ 没有那个文件或目录 的方法
转载自:http://www.meebe.net/blog/article/life/bash.html 经常在ubuntu 64位下运行 ./xxx 会跳出来说没有这个文件或者目录,但是ls看又有这个文件,很是奇怪。特别是看到很多人在ubuntu 64 位 下运行 qq for linux 出现这个问题,居然无人解答,更是奇怪。其实原因很简单,是因为他没有32位的运行库 ia32
2012-08-15 13:27:34 2699
转载 CentOS安装中文支持(linux中文文件名乱码)
转自: http://my.oschina.net/wenic705/blog/15143 开始我用java测试移动文件的时候,wins都可以,当放到centos上的时候就无法移动文件了;最后发现时由于安装英文版的系统不支持中文,出现中文文件名乱码,所以移动不了;下面操作时在centos上安装中文支持:1)先下载并安装两个语言包:fonts-chinese-3.02-12.
2012-08-14 15:01:51 2676
转载 fopen打开2G以上大文件
fopen打开2G以上的文件,是无法打开的,我估计是跟32Bit有关系,跟内存大小有关系。 网上说的一些方法: (1)用fopen64 (2)#undef _FILE_OFFSET_BITS #define _FILE_OFFSET_BITS 64 #include #include (3) 在makefile
2012-08-02 14:12:23 2729
原创 一个 std:vector 的小测试程序
早上无聊,正好接下来的项目可能用到这个类的部分功能,所以小小研究了一下,写了个测试程序,把我关心的功能都试了一下。 #include #include #include using namespace std; typedef struct A_s { int data; } A; int main(int argc, char *argv[])
2012-03-29 11:59:18 564
原创 谋与断——良谋的四大标准
谋,指的是做事情的方法;而断,指的是决策,决定团队到底执行哪个“谋”。 人们常常把出主意的人叫做“谋士”,谋士中“智力”最高者,常常被称作军师,评价一个人做事有办法,有一个成语叫“腹有良谋”。那么,到底什么样“谋”才是“良谋”呢?我认为应满足以下四大标准。 第一,好的谋略,应该包含对问题主要矛盾的分析,然后在主要矛盾分析的基础上,提出解决该矛盾的办法。对同样一件事情,不同的人看
2012-02-22 13:52:51 2214
原创 H.261简要介绍(1)——运动估计
1.3 H.261 简要介绍 H.261 协议又被称为p64,是第一个视频压缩标准,主要应用于视频会议行业。从压缩技术上来说,与后来的压缩技术相比,它的算法最简单,自然,压缩的效果也比较差。对于研究视频压缩技术的工程师而言,从H.261开始研究,有种事半功倍的感觉,因为后来的压缩算法基本思想都和H.261差不多,只是在细节上更加高效了。 前面介绍过了,视频压缩的关键
2007-06-14 09:59:00 5374 1
原创 视频压缩知识介绍(一)——评价标准及算法原理
1.1 视频压缩评价标准 评价视频压缩算法的压缩效果,信噪比是一个非常有效的指标,它非常客观。一般来说,同等码率下,解码后图像与原始图像的信噪比高的那个码流,图像效果更好些。 不过,视频压缩的效果也不能只关注信噪比,它还需要考虑人眼的一些视觉特性,毕竟,人是通过眼睛在看图象,而人眼不是仅仅在计算信噪比。对于视频压缩的这一特性,我取了个名字,叫做“骗眼睛”。关于视觉特
2007-06-11 23:20:00 4526 2
原创 视讯技术基础知识介绍——知识篇(二)
2.2 音视频基本概念介绍2.2.1 视频的基本概念RGB和YUVRGB指的是红绿蓝,应用还是很广泛的,比如显示器显示,BMP文件格式中的像素值等;而YUV主要指亮度和两个色差信号,被称为luminance和chrominance他们的转化关系可以自己去查一下,我们视频里面基本上都是用YUV格式。 YUV格式 YUV文件格式又分很多种,如果算上存储格式
2007-06-08 10:04:00 2501 1
原创 视讯技术基础知识介绍——知识篇(一)
2.1 音视频协议、通讯协议介绍2.1.1 两大标准制定组织 这里的标准,主要指的是音视频压缩标准。两大组织分别是国际标准化组织(ISO)和国际电信联盟(ITU),相信IT行业的从业者没听说过这两个行业的人很少。 在音视频压缩标准方面,mpeg系列的协议是ISO制定的标准,而H系列的协议则是ITU制定的标准。 2.1.2 视频协议
2007-06-08 10:02:00 3331
原创 视讯技术基础知识介绍——基础篇(二)
1.3 视频相关行业介绍 以视频技术为基础,结合其他领域的技术突破,满足了人们各种各样的需求,形成了很多视频相关的行业。这些行业之中,我们来了解一下如下四个方向。1.3.1 多媒体消费类应用 多媒体消费类应用在技术上主要是视频压缩技术和媒体存储技术的结合,主要的产品形式是VCD(早期)和DVD,偏向消费类的家庭应用。这几年随着DVD光驱的普及
2007-06-08 09:58:00 2073
原创 视讯技术基础知识介绍——基础篇(一)
1.1 图形、图像和视频图形(graphic):和图像与视频不同,有一种说法是图形就是自然界的客观世界不存在的图案。对于计算机中的图形研究,有专门的计算机图形学,主要的研究对象是点、线、面等抽象事物。目前所谓的计算机显卡3D技术支持,主要就是图形技术相关的范畴。关于图形方面的开发,好象OpenGL是其中比较有名的3D图形库。 图像(image):和图形相反,图像可以定位为自然界中客观存
2007-06-08 09:55:00 2089
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人