自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈硕的Blog

吾尝终日而思矣,不如须臾之所学也。吾尝跂而望矣,不如登高之博见也。……君子生非异也,善假于物也。 @bnu_chenshuo

  • 博客(7)
  • 资源 (3)
  • 收藏
  • 关注

原创 《代码大全》到底讲什么?

    《代码大全 (中文版)第二版》到底讲什么?她讲的是哪种编程语言?C、C++、Java、C# 还是 Visual Basic?列出的代码全吗?我能从中直接copy&paste代码到自己的项目中吗?这本书英文名叫“Code Complete”,其中 code 是代码,complete 是“完成”的意思。code complete 就是“写完了所有代码,可以开始系统测试”的这么一个时段,与之对应

2005-12-31 20:07:00 38162 26

原创 CC2e 术语:construction 译成“构建”还是“构筑”?

      construction 恐怕是《Code Complete(代码大全) 第二版》这本书里惟一值得讨论的术语。construction 本意是“建筑、建筑物”。在这本书里用来指软件开发过程中最主要的一项活动,软件开发的活动包括:问题定义、架构、需求、设计、construction、系统测试等等。construction 中的主要活动包括:详细设计、编码、调试、集成、开发者测试(单元测试

2005-12-21 18:51:00 6512 13

原创 CC2e 术语:把 routine 译为“子程序”的理由

      这里特别说明一下在《Code Complete(代码大全) 第二版》中我们把 routine 译为“子程序”的理由。(主要观点来自裘宗燕老师,部分文字取自裘老师写给我们的邮件。)  这本书先讲整体的设计(第 5 章);而后讲 class(第 6 章),是下降一个层次;而后讲 routine(第 7 章)。在第 7 章“High-Quality Routines”的一开始,作者自设一问:

2005-12-20 21:25:00 8981 22

原创 CC2e 术语:一些基本确定的术语

      《Code Complete(代码大全) 第二版》中译本使用下面这些术语我想不会引起多大争议(完全不会有争议的术语,如“variable/变量、program/程序、class/类”等等就不列出了):agile development - 敏捷(软件)开发architecture - 架构assertion - 断言building block - 构造块business logic

2005-12-20 21:22:00 5201 18

原创 《Code Complete 中文版 第二版》统稿流水帐

      《Code Complete 中文版 第二版》/《代码大全》(这是我自己设想的书名,最后不一定这么叫,下称 CC2e。)的翻译工作已经完成,审校工作也基本完成。这本书由 4 名译者(金戈 汤凌 陈硕 张菲)翻译,由裘宗燕老师审校。目前进入统稿阶段(主要由我来做,之后交由译者复查),主要工作有: 统一术语完成交叉引用补注原文,让索引中出现的英文词汇在正文中基本都能找到根据原书勘误表修订译

2005-12-20 18:06:00 6357 4

原创 用Bresenham算法在FPGA上实现小数分频器

最近朋友问了一个问题,输入时钟是33MHz,要分出一路2.048MHz的时钟来,要求相位抖动尽可能小。我想到可以用计算机图形学中绘制直线的Bresenham算法来解决,获得成功。输入时钟是33000kHz,输出时钟是2048kHz,好比从原点画一条到(33000,2048)的直线,用输入时钟驱动画笔在 x 方向的运动,那么对应的 y 方向的运动就是输出时钟。Verilog代码如下:module 

2005-12-12 09:33:00 7907 9

原创 JPEG 学习笔记

JPEG 学习笔记

2005-12-02 19:54:00 5918 1

当析构函数遇到多线程── C++ 中线程安全的对象回调 PDF

编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种竞态条件是 C++ 多线程编程面临的基本问题,可以借助 boost 的 shared_ptr 和 weak_ptr 完美解决。这也是实现线程安全的 Observer 模式的必备技术。 本文源自陈硕在 2009 年 12 月上海 C++ 技术大会的一场演讲《当析构函数遇到多线程》,内容略有增删。原始 PPT 可从 http://download.csdn.net/source/1982430 下载。 本文读者应具有 C++ 多线程编程经验,熟悉互斥器、竞态条件等概念,了解智能指针,知道 Observer 设计模式。

2010-01-23

当析构函数遇到多线程── C++ 中线程安全的对象回调

编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种竞态条件是 C++ 多线程编程面临的基本问题,可以借助 boost 的 shared_ptr 和 weak_ptr 完美解决。这也是实现线程安全的 Observer 模式的必备技术。 本文源自我在 2009 年 12 月上海 C++ 技术大会的一场演讲《当析构函数遇到多线程》,内容略有增删。原始 PPT 可从 http://download.csdn.net/source/1982430 下载。 本文读者应具有 C++ 多线程编程经验,熟悉互斥器、竞态条件等概念,了解智能指针,知道 Observer 设计模式。

2010-01-22

《当析构函数遇到多线程》PPT

这是陈硕在 2009 年上海 C++ 技术大会演讲《当析构函数遇到多线程》的 PPT 投影片,可自由用于个人学习,其他使用需得到作者许可。 简介:编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种 race condition 是 C++ 多线程编程面临的基本问题,可以借助 tr1 中的 shared_ptr 和 weak_ptr 完美解决。这也是实现线程安全的 Observer 模式的必备技术。

2010-01-10

空空如也

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

TA关注的人

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