语言基础
文章平均质量分 75
文森88
个人博客
展开
-
C++11 thread中“信号量”condition_variable的使用
std::condition_variable< cpp | thread定义于头文件 class condition_variable;(C++11 起)condition_variable 类是同步原语,能用于阻塞一个线程,或同时阻塞多个线程,直至另一线程修改共享变量(条件)并通知 condition_variable 。有意修改变量的线程必须1.获得 std::mutex (常通过 std::lock_guard )2.在保有锁时进行修改原创 2021-01-17 17:35:50 · 2328 阅读 · 0 评论 -
opencl intel平台编译Demo环境 (vc code + cmake)
下载开发软件:https://software.intel.com/content/www/us/en/develop/articles/opencl-drivers.html?wapkw=openclIntel® CPU Runtime for OpenCL™ Applications 18.1 for Windows* OS (64bit or 32bit)https://fpgasoftware.intel.com/opencl/19.1/?edition=pro面向OpenCL的Intel原创 2021-01-16 21:48:23 · 1498 阅读 · 0 评论 -
VScode 编译C++环境配置
1.下载minGE2.配置g++到环境变量中3.创建jsontask.json用于 编译cpp文件lauch.json用于 gdb去debug cpp文件实例:task.json{ "version": "2.0.0", "command": "g++", "args": ["-g", "${file}", "${worksp...原创 2020-04-21 01:26:37 · 364 阅读 · 0 评论 -
枚举变量作为参数传递时,“打印”枚举变量名字技巧
#define MY_S(x) ({MY_LOGD("vicentsss %s",#x); (x);}) //打印枚举名,并返回枚举值 void checkExit(const IMetadata *meta, int tag) checkExit(&(rvResult[i].meta), MY_S(MTK_COLOR_CORRECTION_MODE ));...原创 2018-06-25 10:54:32 · 6747 阅读 · 0 评论 -
C++ 11 std::unordered_map高级用法
http://androidxref.com/8.0.0_r4/xref/frameworks/av/services/camera/libcameraservice/device1/CameraHardwareInterface.h中typedef std::unordered_map&lt;const buffer_handle_t, uint64_t, BufferHas...原创 2018-06-27 20:35:24 · 4913 阅读 · 0 评论 -
python Android P终端运行环境
我的博客第一条python原创 2019-01-08 00:26:46 · 1171 阅读 · 0 评论 -
python 笔记--常用基本代码块
importimport osimport mathimport matplotlib.pyplot as pltimport pytesseractfrom PIL import Imageimport timeimport matplotlib.image as mpimgimport subprocessimport threadingimport sysimport ...原创 2019-02-24 15:38:01 · 420 阅读 · 0 评论 -
python--opencv的基本使用
常用函数读图片:image = cv2.imread(full_path_i)存照片:cv2.imwrite(img_path+'/out/'+file_name+'line_'+str(line_c)+'.png', image)图片宽高:print('h w:%d %d',image.shape[0],image.shape[1])图片的crop x1 = int(ima...原创 2019-02-24 23:49:35 · 610 阅读 · 0 评论 -
python笔记-csv文件基本操作
import csvimport pandas as pd读取文件sFilename = './img_db.csv'with open(sFilename)as file: try : data=pd.read_csv(file) if(len(data[data['file_name']==file_name].values) != 0): ...原创 2019-02-24 15:56:58 · 543 阅读 · 0 评论 -
王者荣耀辅助工具简析--Android
王者荣耀辅助原理王者荣耀人物移动时,人物的坐标是固定的。基于这一点人物的技能范围是确定的。实现经过分析人物的攻击范围和技能范围均为椭圆形。1.首先通过截图计算出椭圆的 a/b轴和中心坐标。 截图命令 adb shell srceencap -p &amp;amp;amp;amp;amp;amp;gt; 本地文件.png photoshop打开.png文件,确定椭圆上下左右切线位置 top.y, button....原创 2018-05-13 21:20:18 · 8803 阅读 · 1 评论 -
Android shared lib的简单封装方式
Interface类定义 Class Interface { virtual int init() = 0; virtual int process() = 0; }int CreatInstance( MyInterface **p, int type ) { }封装 继承Interface,实现CreatInstance使用 Interface*i...原创 2018-05-11 14:24:26 · 425 阅读 · 0 评论 -
Log分析技巧
1.关键字查找:(用于筛选,或者已知问题查找)1.1由现象快速查找定位经验主义,通过以往大量log的分析经验, 熟悉已知的fail log。比如CameraApp Crash log: force stopping com.asus.cameraCamera HAL/daemon crash:backtrace:其他fail/error 1.2查找log中关键字常...原创 2017-03-21 11:22:59 · 9617 阅读 · 0 评论 -
多线程编程
1.static变量 要加保护2.同一线程两次访问 同一变量,全程要加一个锁原创 2017-03-17 12:52:07 · 260 阅读 · 0 评论 -
linux多线程编程
1.static成员变量 要加全局的的锁保护static成员变量在不同的对象里相当于是同一个变量2.同一线程两次访问 同一变量,全程要加一个锁3.线程创建线程函数是static的函数,故而个如果定义在类成员函数中,则该线程函数不能访问this指针。需要在create thread的时候通过thread参数传入类的指针。 pthread_create(fun,0,this)...原创 2017-05-27 16:05:11 · 380 阅读 · 0 评论 -
[C++11]std::mutex与pthread mutex区别
Linux下 mutexattr* PTHREAD_MUTEX_TIMED_NP,这是缺省值,也就是普通锁。当一个线程加锁以后,其余请求锁的线程将形成一个等待队列,并在解锁后按优先级获得锁。这种锁策略保证了资源分配的公平性。* PTHREAD_MUTEX_RECURSIVE_NP,嵌套锁,允许同一个线程对同一个锁成功获得多次,并通过多次unlock解锁。如果是不同线程请求,则在加锁线程原创 2016-07-22 01:10:48 · 5467 阅读 · 0 评论 -
[C++11]并发程序模板(std::thread)
1.基本知识(单一消费者wait,多生产者为例)typedef struct { int val; std::mutex mutex; std::condition_variable cond;} ns_semaphore_t;static inline int ns_sem_wait(ns_semaphore_t *s){ int rc原创 2016-07-24 15:47:23 · 600 阅读 · 0 评论 -
[C++11]std::chrono时间处理类
时间类分为:时间,时间点,时间间隔时间点std::chrono::time_point<>auto beg_t = std::chrono::system_clock::now(); 当前时间点时间间隔 std::chrono::duration<>时间点相减就是时间间隔。不用考虑细节。时间点相减之后需要 用duration_cast转化为某一单位ns,ms...原创 2016-08-01 18:04:46 · 3917 阅读 · 0 评论 -
[C++11]析构函数中std::thread::join()卡住无法退出
join()卡住分析直接原因: 与main thread退出时候发生死锁。main结束时候 -->CRT locktable.lock -->~ -->join等待其他线程退出其他线程结束时候->等待main释放CRT locktable.lock -->与main线程死锁原创 2016-07-19 17:46:42 · 12569 阅读 · 0 评论 -
枚举类型本质
枚举类型内存中占用空间#include using namespace std;int main(int argc, char **argv){ enum color{ r,g,b}; color c; cout return 0;}返回4------------------(program exited with co原创 2015-07-07 15:09:04 · 511 阅读 · 0 评论