- 博客(12)
- 收藏
- 关注
原创 unique_lock详解
unique_lock可以取代lock_guard。class A {public: //把收到的消息放入队列的线程 void inMsgRecvQueue() { for (int i = 0; i < 100; i++) { cout << "inMsgRecvQueue()执行,插入一个元素" << i << endl; { std...
2021-09-27 23:16:49
4936
原创 c++中 互斥量与模板
先来看c++解决多线程中保护共享数据问题的第一个概念——互斥量。互斥量的概念互斥量需小心使用,保护的数据少了起不到保护的效果,还可能出现异常。保护的数据多了,会影响程序的运行效率,因为锁没有释放前,别的线程会阻塞等待锁的释放。lock和unlock的使用规则:必须配对使用。#include<thread>#include<iostream>#include<list>#include<mutex>...
2021-09-27 08:40:50
190
原创 线程传参小记
传递临时对象作为线程参数先看下面的范例void myprint(const int& i, char* pmybuf) { cout << i << endl; cout << pmybuf << endl; return;}int main () { int mvar = 1; int& mvary = mvar; char mybuf[] = "this is a test!"; std
2021-09-24 18:57:35
194
原创 操作系统之进程线程的通讯方法
进程间通讯(1)管道/无名管道(2)信号(3)共享内存(4)消息队列(5)信号量(6)socket 临界区是一种概念,指的是访问公共资源的程序片段,不是一种通讯方式。线程通讯(1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁...
2021-09-07 16:47:37
111
原创 操作系统之进程与线程
进程与线程的概念进程是资源(CPU、内存等)分配的基本单位,线程是 CPU 调度和分配的基 本单位(程序执行的最小单位)。 (1)运行一个程序的时候,系统就会创建一个进程,并分配地址空间和其他资源,最后把进程加入就绪队列,待分配到CPU时间就可以运行。(2)线程是进程的一个执行流,进程就像一个容器一样,包括程序运行的程序段、数据段等信息,但是进程其实是不能用来运行代码的,真正运行代码的是进程里的线程。(3)我们最熟悉的main()函数,我们既可以认为这是一个进...
2021-09-06 23:24:58
122
原创 Visual Studio提示函数或者变量may be unsafe
前言 用visual studio进行编码时,使用有些c的库函数,经常提示may be unsafe,如strtok()、strcpy()等。进行设置可跳过该安全检查。解决办法 项目->属性->c/c++->预处理器定义(下来选择编辑)->添加_CRT_SECURE_NO_WARNINGS完成上述设置即可正常编译。...
2021-09-06 15:29:31
742
原创 C++使用注意--字符串常量赋值
c++11已经不支持char* a="123";因为后者是字符串常量(就比如不能写int* a=1),一种替代方式是char* a=(char*)"123";会在内存中开辟一块新的区域存放"123",然后a指向这块新的区域。
2021-09-02 17:38:36
643
转载 C++设计模式学习
前言 近期在学习C++设计模式,找到一个很不错的系列,结构清晰,通俗易懂。个人认为看完之后能有个大致的了解。已向作者申请转载,侵权立删。参考链接(转载)C++设计模式系列文章 - 知乎 (zhihu.com)...
2021-08-30 15:46:02
199
原创 个人歪比巴卜
前言 1、 使用优快云的最纯粹的目的,便是记录整合所学的知识。我很弱,即便成长了也还是会很弱,比不得大佬,也没有想成为大佬的野心。 2、曾经使用过有道云来记录一下知识,感觉作为技术记录的话不太方便。看到写博客的人很多,便想着用优快云来进行记录。因此优快云对于我的用处,可能更像一个总结的笔记本。 3、 由于很菜,再加上笔记本性质,可能有些博文会是半成品性质。如果博文有幸被你访问到,你也许会发现这对你没什么帮助。说不定有时候你会发现博文中存在的错误,那么欢...
2021-08-30 15:14:02
127
原创 C++学习日志(输出vector<string>内容)
标准库类型vector标准库类型vector表示对象的集合,其内所有的对象类型都相同。使用vector必须包含头文件(#include <vector>)。个人理解:vector是一个类模板,编译器根据模板创建类或函数,vector<string>就是根据模板创建了若干string对象,而string本身可以包含字符串,字符串可以视为若干个字符,即,vector<st...
2018-03-20 21:14:21
26375
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人