
读书笔记
文章平均质量分 83
阳安子
技术在成长。
展开
-
图解TCP/IP(读书笔记)
图解TCP/IP(读书笔记)1、http属于OSI应用层,HTML属于表示层 2、电子邮件,发送协议SMTP(使用TCP),25端口号,接收POP3协议(TCP)–客户端管理邮件,附件管理–IMAP协议–服务器管理邮件。 3、发送时TCP模块处理:TCP首部包含源端口号和目的端口号(以确定两边同一应用),序号(数据编号,区分数据),校验和(损坏与否)。 接收时TCP模块处理:首先计算校验和,判原创 2016-08-08 18:27:00 · 744 阅读 · 0 评论 -
Cpp Concurrency In Action(读书笔记1)——线程入门及管理
线程入门、管理线程入门#include #include //1void hello() //2{ std::cout << "Hello Concurrent World\n";}int main(){ std::thread t(hello); //3:新线程的初始函数,启动线程 t.join(); //4:调用线程等待与t相关的线程 system("pause"原创 2016-10-21 19:46:09 · 1029 阅读 · 0 评论 -
Cpp Concurrency In Action(读书笔记8)——高级线程管理
线程池 线程池:一个预先设定的线程组,会将任务指定给池中的线程。在大多数系统中,将每个任务指定给某个线程是不切实际的,不过可以利用现有的并发性,进行并发执行。线程池就提供了这样的功能,提交到线程池中的任务将并发执行,提交的任务将会挂在任务队列上。队列中的每一个任务都会被池中的工作线程所获取,当任务执行完成后,再回到线程池中获取下一个任务。最简单的线程池 作为最简单的线程池,其拥原创 2016-11-23 23:14:53 · 1026 阅读 · 0 评论 -
Cpp Concurrency In Action(读书笔记7)——并发代码设计
线程间划分工作的技术 决定使用多少个线程,并且这些线程应该去做什么。还需要决定是使用“全能”的线程去完成所有的任务,还是使用“专业”线程只去完成一件事情,或将两种方法混合。使用并发的时候,需要作出诸多选择来驱动并发,这里的选择会决定代码的性能和清晰度。因此,这里的选择至关重要,所以在你设计应用程序的结构时,再作出适当的决定。在线程处理前对数据进行划分 使用过MPI(Messag原创 2016-11-22 09:07:17 · 1121 阅读 · 0 评论 -
Cpp Concurrency In Action(读书笔记6)——无锁并发数据结构设计
定义和意义 使用互斥量、条件变量,以及“期望”来同步“阻塞”(blocking)数据的算法和数据结构。使用原子操作的“内存序”特性,并使用这个特性来构建无锁数据结构。 不使用阻塞库的数据结构和算法,被称为“无阻塞”(nonblocking)结构。不过,“无阻塞”的数据结构并非都是无锁的(lock-free)。非阻塞数据结构 使用std::atomic_flag 实原创 2016-11-16 23:22:38 · 1352 阅读 · 1 评论 -
Cpp Concurrency In Action(读书笔记2)——线程间共享数据
前言上一篇:线程入门及管理(点击打开链接)。避免恶性条件竞争原创 2016-10-24 21:42:18 · 939 阅读 · 0 评论 -
Cpp Concurrency In Action(读书笔记5)——基于锁的并发数据结构设计
为并发设计的意义何在? 在并行程序中的数据结构:要么绝对不变,要么能够正确的同步。要能够正确的同步:一种方法是设计独立的互斥量,来锁住需要保护的数据,另外一种方法就是设计一种能够并发访问的数据结构。 指导思想:设计”线程安全“的数据结构,并减少保护区域,减少序列化操作,提高并发访问的潜力。数据结构并发设计的指导与建议(指南) 一要保证访问是安全的,二要能够真正的并发访问。原创 2016-11-10 12:14:09 · 911 阅读 · 0 评论 -
Cpp Concurrency In Action(读书笔记4)——C++内存模型和原子类型操作
内存模型基础基本结构,这个结构奠定了与内存相关的基础并发对象和内存位置每一个变量都是一个对象,包括作为其成员变量的对象。每个对象至少占有一个内存位置。基本类型都有确定的内存位置(无论类型大小如何,即使他们是相邻的,或是数组的一部分)。相邻位域是相同内存中的一部分。对象、内存位置和并发 所有东西都在内存中。为了避免条件竞争,两个线程就需要一原创 2016-11-07 14:47:12 · 1121 阅读 · 0 评论 -
Cpp Concurrency In Action(读书笔记3)——同步并发操作
等待一个事件或其他条件第一,它可以持续的检查共享数据标志(用于做保护工作的互斥量),直到另一线程完成工作时对这个标志进行重设。第二个选择是在等待线程在检查间隙,使用 std::this_thread::sleep_for() 进行周期性的间歇:#include #include #include class wait_test { bool flag; std::原创 2016-10-31 10:52:26 · 2655 阅读 · 0 评论 -
Cpp Concurrency In Action(读书笔记9)——多线程程序的测试和调试
与并发相关的错误类型 测试和调试就像一个硬币的两面——测试是为了找到代码中可能存在的错误,需要调试来修复错误。如果在开发阶段发现了某个错误,而非发布后发现,这将会将使错误的破坏力降低好几个数量级。 错误类型:不必要阻塞条件竞争不必要阻塞 通常,是因为其他线程在等待该阻塞线程上的某些操作完成,如果该线程阻塞了,那那些线程必然会被阻塞。死锁,常考读书笔记2给出的指导意原创 2016-11-24 10:50:05 · 810 阅读 · 0 评论