摘要:
1.首先第一步应该是先代码审阅,在审阅多线程代码时,重点要检查与并发相关的错误。 审阅多线程代码需要考虑的问题: 这里,列一下我的清单: 并发访问时,那些数据需要保护?如何确定访问数据受到了保护?是否会有多个线程同时访问这段代码?这个线程获取了哪个互斥量?其他线程可能获取哪些互斥量?两个线程间的操作 阅读全文
摘要:
竞争条件指多个线程或者进程在读写一个共享数据时结果依赖于它们执行的相对时间的情形。 竞争条件指多个线程或者进程在读写一个共享数据时结果依赖于它们执行的相对时间的情形。 竞争条件发生在当多个进程或者线程在读写数据时,其最终的的结果依赖于多个进程的指令执行顺序。 例如:考虑下面的例子 假设两个进程P1和 阅读全文
摘要:
空悬指针是这样一种指针:指针正常初始化,曾指向过一个正常的对象,但是对象销毁了,该指针未置空,就成了悬空指针。 野指针是这样一种指针:未初始化的指针,其指针内容为一个垃圾数。 (一般我们定义一个指针时会初始化为NULL或者直接指向所要指向的变量地址,但是如果我们没有指向NULL或者变量地址就对指针进 阅读全文
摘要:
C++基础书籍《C++ primer》《深度探索C++对象模型》《Effective C++》《more effective C++》《STL源码剖析》 多线程编程书籍 《C++并发编程实战》 Linux :《鸟哥的Linux私房菜》《UNIX/linux系统编程》 网络编程:《C++网络编程》(卷 阅读全文
摘要:
从一个经典的例子开始:一个打印“Hello World.”的程序。一个非常简单的在单线程中运行的Hello World程序如下所示,当我们谈到多线程时,它可以作为一个基准。 这个程序所做的就是将“Hello World”写进标准输出流。让我们将它与下面清单所示的简单的“Hello, Concurre 阅读全文
摘要:
1. string转const char* string s ="abc"; const char* c_s = s.c_str(); 2. const char*转string 直接赋值即可 const char* c_s ="abc"; string s(c_s); 3. string转char 阅读全文
摘要:
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编 阅读全文
摘要:
一个程序就是一个进程,而一个程序中的多个任务则被称为线程。进程是表示资源分配的基本单位,又是调度运行的基本单位。线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。 进程和线程的关系(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程是操作系统可识别的最小执行和 阅读全文
摘要:
首先是Ctrl+Alt+T 打开终端,然后在终端中输入指令(更新资源) 接着是对软件进行升级。(这是一个漫长的过程,需要下载资源) 接着安装系统更新,如果不希望升级系统版本,完成这步就可以了。 更新完系统后需要重启系统才能看到最新的版本 检测是否有ubuntu新版本。 阅读全文
摘要:
C++11一个最重要的新特性就是对多线程的支持。 C++标准第一次承认多线程在语言中的存在,并在标准库中为多线程 提供组件。意味着使用C++编写与平台无关的多线程程序成为可能,也为可能移植性提供了强有力的保证。与此同时,程序员为提高应用的性能,对并发的关注也是与日剧增,特别是在多线程编程方面。 何谓 阅读全文