- 博客(6)
- 收藏
- 关注
原创 c++线程的一些理解
目前多线程方面我会用两种:Qt的QThread和std::thread,都是跨平台,封装了系统的线程库。 之后有必要会去了解Windows的thread和Linux的pthread。线程同步方面主要使用互斥锁mutex和条件变量condition_variable,没有用到一定需要用信号量的场景且互斥锁效率不一定比读写锁差,所以所有项目我都只用互斥锁和条件变量基本都能实现需求。互斥锁:保证临界区代码同时只能被一个线程访问。最常用的同步方式。有一些注意的地方Winodows下,锁在同一个线程.
2020-07-30 11:03:14 541
原创 C++RAII(资源即初始化)个人理解
Bjarne Stroustrup在书中提到"使用局部对象管理资源的技术通常称为“资源获取就是初始化”。这种通用技术依赖于构造函数和析构函数的性质以及它们与异常处理的交互作用"。其实我用到这个的东西不多,总是自信自己能在合适的时候将资源及时释放,但是项目越来越大,难免会有遗漏,所以当要获取一项资源的时候可以将该资源和类绑定,即和对象的生命周期绑定,用构造获取资源,用析构释放资源,可以用到文件,socket,锁上面。事实上,日常常规做法已经有很多RAII的例子了,比如string,智能指针和lock_gu
2020-07-16 14:52:47 280
原创 (Qt)封装下串口类QSerialPort的线程操作
串口基类-使用时请继承该类 -在子类业务逻辑,不要直接扩展该类。原则上读操作应该放入同一个线程,写操作也要放入同一个线程。这里读操作(read)和写操作(打开,关闭,write)不放在一个线程里这里因为我需要方便获取串口打开判断返回值所以打开放到主线程里,而且一般情况下写数据量不是很大,所以这里所有的写操作放到主线程,读操作处理包常规放到次线程里。如果串口读量很大,可以将所有操作放入线程里,比如用该类发信号进入线程,但是打开之类的返回值需要在异步中,通过信号通知合适对象是否打开成功。头文件.h..
2020-07-16 14:06:07 1905
原创 (C++)矩阵模板类
急忙忙,接了个单子写了个矩阵模板类,测了下int型没问题,之后再完善,还有个卷积运算没看懂懒得做,其他应该都做好了。#pragma once#include <iostream>#include <string>#include <vector>#include "..\utils\FileOperation.h"#include "..\utils\Utils.h"#include <sstream>using namespace std
2020-07-15 09:13:45 1372
原创 QT项视图类(QTableWidget,QListWidget,QTreeWidget)
QTableWidget刚用QT的操作:int casewidth = ui.case_Table->width(); ui.case_Table->setColumnWidth(0, (2.0 / 10.0)*casewidth); ui.case_Table->setColumnWidth(1, (2.5 / 10.0)*casewidth); ...
2020-07-13 15:40:39 370 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人