- 博客(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
QT界面图片插入Table、Tree后变化
2023-07-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人