自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

转载 多线程队列的算法优化

多线程队列(Concurrent Queue)的使用场合非常多,高性能服务器中的消息队列,并行算法中的Work Stealing等都离不开它。对于一个队列来说有两个最主要的动作:添加(enqueue)和删除(dequeue)节点。在一个(或多个)线程在对一个队列进行enqueue操作的同时可能会有一个(或多个)线程对这个队列进行dequeue操作。因为enqueue和dequeue都是对同一个队列

2014-08-13 17:18:47 470

转载 TCP/IP编程之四书五经——孟岩

TCP/IP协议是当前广域网和局域网通用的网络协议,因此,基于TCP/IP的编程就格外重要。从应用上来说,现在直接利用C层次Socket API进行TCP/IP编程的人确实越来越少了,各种现成的框架(如ACE、Java、.NET FCL)和控件(如IP*Works)大大简化了TCP/IP编程的难度。但是,如果想要在这个领域达到融会贯通的地步,不打下坚实的基础是不可想象的。正如Richard Ste

2014-08-13 16:48:31 1872

转载 谈一谈网络编程学习经验——陈硕

陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 PDF 版下载:https://github.com/downloads/chenshuo/documents/LearningNetworkProgramming.pdf 本文谈一谈我在学习网络编程方面的一些个人经验。“网络编程”这个术语的范围很广,本文指用Sock

2014-08-13 16:05:32 1665

转载 关于 TCP 并发连接的几个思考题与试验 ——陈硕

陈硕 (giantchen AT gmail) blog.csdn.net/Solstice 前几天我在新浪微博上出了两道有关 TCP 的思考题,引发了一场讨论 http://weibo.com/1701018393/eCuxDrta0Nn 。 第一道初级题目是: 有一台机器,它有一个 IP,上面运行了一个 TCP 服务程序,程序只侦听一个端口,问:从理论上讲(只考虑 TCP/IP 这

2014-08-13 10:41:13 814

转载 多线程服务器的常用编程模型——陈硕

陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2009 Feb 12   建议阅读本文 PDF 版下载: http://files.cppblog.com/Solstice/multithreaded_server.pdf   本文主要讲我个人在多线程开发方面的一些粗浅经验。总结了一两种常用的线程模型,归纳了进程间通讯与线程同步的最佳实践

2014-08-13 10:12:55 2435

转载 并行编程中的“锁”难题

注:本文发表于《程序员》2011年第8期并行编程专栏,略有删改。 在并行程序中,锁的使用会主要会引发两类难题:一类是诸如死锁、活锁等引起的多线程Bug;另一类是由锁竞争引起的性能瓶颈。本文将介绍并行编程中因为锁引发的这两类难题及其解决方案。 1. 用锁来防止数据竞跑 在进行并行编程时,我们常常需要使用锁来保护共享变量,以防止多个线程同时对该变量进行更新时产生数据竞跑(Data Race)。所

2014-08-13 10:09:45 506

转载 多核与异步并行

原文发表于《程序员》杂志2012年第9期,文字略有修改。 我们在设计多线程程序时往往有很多性能指标,例如低延迟(latency),高吞吐量(throughput),高响应度(responsiveness)等。随着多核处理器上CPU核数的日益增加,如何高效地利用这些计算资源以满足这些设计目标变得越来越重要。这次向大家介绍的异步并行就是一种帮助实现低延迟、高吞吐量和高响应度的并行编程技术。 让我们

2014-08-13 09:23:52 558

转载 浅析C++多线程内存模型

注:本文发表于《程序员》2011年第6期并行编程专栏,略有删改。 在即将到来的C++1x标准中,一个重大的更新就是引入了C++多线程内存模型。本文的主要目的在于介绍C++多线程内存模型涉及到的一些原理和概念,以帮助大家理解C++多线程内存模型的作用和意义。 1. 顺序一致性模型(Sequential Consistency) 在介绍C++多线程模型之前,让我们先介绍一下最基本的顺序一致性模型

2014-08-12 17:46:28 408

转载 memory barrier

要了解如何使用memory barrier,最好的方法是明白它为什么存在。CPU硬件设计为了提高指令的执行速度,增设了两个缓冲区(store buffer, invalidate queue)。这个两个缓冲区可以避免CPU在某些情况下进行不必要的等待,从而提高速度,但是这两个缓冲区的存在也同时带来了新的问题。 要仔细分析这个问题需要先了解cache的工作方式。 目前CPU的cache的工

2014-08-12 17:39:36 457

转载 为什么程序员需要关心顺序一致性(Sequential Consistency)而不是Cache一致性(Cache Coherence?)

最后一次修改:2010年11月11日 本文所讨论的计算机模型是Shared Memory Multiprocessor,即我们现在常见的共享内存的多核CPU。本文适合的对象是想用C++或者Java进行多线程编程的程序员。本文主要包括对Sequential Consistency和Cache Coherence的概念性介绍并给出了一些相关例子,目的是帮助程序员明白为什么需要在并行编程时关注Sequ

2014-08-12 16:58:10 321

转载 C#调用C++DLL的类型对应

//C++中的DLL函数原型為         //extern “C” __declspec(dllexport) bool 方法名一(const char* 变量名1, unsigned char* 变量名2)         //extern “C” __declspec(dllexport) bool 方法名二(const unsigned char* 变量名1, char* 变量名2

2014-08-08 10:40:03 719

转载 SOLID原则

SOLID原则是SRP单一职责原则、OCP开闭原则、LSP里氏代换原则 、ISP接口隔离原则 、DIP依赖倒置原则 四个原则的第一个字母简称,如今还多了一个依赖注入DI。本文介绍了SOLID原则和现在新的流行OO设计思想。 设计七宗罪 刚性 - 使其难以改变 脆弱性 - 可以很容易地打破 不可移动 - 使其难以重用 粘度 - 使其难以做正确的事 不必要的复杂性 – 过分设计 不必要的

2014-08-07 15:29:19 1600

转载 面向对象10原则

追求高内聚highly cohesive 和松耦合 loosely couple 的解决方案是面向对象设计基本核心原则。这里列出OO设计中十大原则: 1. DRY (不要重复你自己) 这是指不写重复的代码,取而代之是使用抽象共性的东西。如果超过一次使用硬编码,那么就要考虑将其公开为final修饰的不变量;如果你在两个以上地方有相同的代码块,那么就要考虑使其成为一个单独的方法。SOLID设计

2014-08-07 15:25:16 381

转载 CAP原则

1        CAP 理论 Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾。 忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。 1.1 Consis

2014-08-07 15:14:52 1156

转载 什么是IOC

版权声明: 本文由冰云完成,首发于CSDN,作者保留中文版权。 未经许可,不得使用于任何商业用途。 欢迎转载,但请保持文章及版权声明完整。 如需联络请发邮件:icecloud(AT)sina.com

2014-08-07 15:06:17 377

软件架构师应该知道的97件事

软件架构师应该知道的97件事。是专家的经典意见

2014-07-15

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

TA关注的人

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