自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张飞online博客

崇尚真诚,回避浮夸!

  • 博客(159)
  • 收藏
  • 关注

原创 设计模式之模板方法

1.设计模式的模板方法其实是大部分人都用过,可能没有意识到,给人封装过接口更应该了解。一般而言,我们封装出来的接口如果仅仅是系统流程里面的一个环节,那么我们就做基础的接口封装,不需要关心具体的业务。使用者爱怎么调用就怎么调用。注意:这个时候是使用者调用我们。而如果我们就是系统设计者,角度就变了,也就出现了我们今天的主题,模拟方法。 ...

2018-11-24 17:12:09 178

原创 数据结构与算法之栈

数据结构与算法之栈首先感叹下,csdn的排版终于人性化了。以前写个东西费劲的要死。谈到数据结构的栈,其实觉得  

2018-10-09 23:34:18 171

原创 记一次Qt中使用条件变量的bug

程序的用法其实是有潜规则的,当我们看到大牛频繁提交pach的时候,想为什么我就发现不了,其实本质是我们还没有深谙此道,有些bug的存在一定是伴随着你用的东西。换句话说,当你用一个东西的时候,bug就已经开始伴随你,而你是否深谙此道就决定了你的程序是否有bug。大牛看到你用条件变量,就知道条件变量有多少坑,看一眼,发现你根本没有填坑,那么这就是bug。我们要讨论的也就是Qt中条件变...

2018-08-29 01:19:22 845

原创 Linux中断走一波

明天补上

2018-08-24 00:37:22 220

原创 qt线程套路,qt线程源码分析

qt源码地址:https://github.com/radekp/qt/blob/b881d8fb99972f1bd04ab4c84843cc8d43ddbeed/src/corelib/thread/qthread_unix.cpp Qt的线程应该是大家讨论比较多的,也是迷惑比较多的。这主要和qt线程实现机制和上层封装出的接口有关,封装的不清不楚,接口要么就封装的完全不知道里...

2018-08-14 23:36:48 3154 1

原创 QT实现基于QIODevice的线程安全环形队列

QT实现基于QIODevice的线程安全环形队列./****************************************************************************** Copyright (C) 2017-2018 Zhang Fei <1158114251@qq.com> This class inherits the...

2018-07-07 20:40:32 2769 3

原创 Qt视频框架qtav构建编译使用

1.首先说下:如果你的环境是下面网站中有的环境,你就可以直接使用,没必要重新编译构建。直接下载作者编译好的,执行里面的脚本2.我的环境是vs2013+qt5.7  环境恰恰和作者提供的环境不一样GG。我试者直接使用发现了很多编译链接问题,没办法重新编译qtav。qtav的编译过程其实很简单:下载 http://sourceforge.net/projects/qtav/files/depends/...

2018-07-05 12:34:15 4822

原创 条件变量“丢信号”如何看待!

首先来说条件变量丢信号是我们的阐述:根本原因是我们在使用条件变量的时候没有满足条件变量的基本条件!

2018-06-27 00:16:11 1937

原创 Linux I2C 驱动分析

pci_bus_match

2018-06-21 10:40:32 351

原创 Spinlock透彻分析之Spinlock底层实现机理(一)

自旋锁透彻分析之自旋锁的底层实现机理(一)

2018-06-09 22:31:35 2575

原创 字符设备驱动透彻分析(一)

 前言:    首先要说的是对于linux这样优秀的操作系统,我们在分析的时候一定是站在全局去对对待,而非一开始就去扣那些毛细血管的东西。我看到诸多博客对linux下的字符设备驱动进行这样那样的描述,但是大多居于形式,告诉你这样或者那样操作。1.首先我们要谈的是linux下的贯穿始终的一句话“一切皆文件”,很多时候当你想不通的时候,想下这句话也许就豁然开朗,当然linux下的字符设备驱动也是以文件...

2018-06-07 16:21:58 3320

原创 GlusterFs 分布式文件系统环境搭建

1.关闭防火墙和SELinux (对于这个安全模块,有兴趣可以看看)systemctl stop firewalldsystemctl disable firewalldvi/etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled

2018-06-07 00:18:03 847

原创 Linux线程安全函数和可重入

  这俩个概念就不讲了,你需要明确的是可重入一定是线程安全的,因为多线程访问本质就是一种线程重入的体现。还是说下吧。所以当你在linux下编程想一些函数能不能多线程这么用的时候其实就是在考虑线程安全问题!比如你考虑我多个线程使用消息队列,会不会出问题,当然不会,因为消息队列是线程安全的。内部实现了锁机制。当然下面这篇说理也够透彻!转载 https://www.ibm.com/developerwo...

2018-05-28 13:56:47 4462

原创 OpenStack学习

1.OpenStack云平台出现的本质原因是什么?      现实的业务需求和业务场景就决定了云平台管理的出现,相比于以前的单个主机多用户,到后来的单主机,多虚拟机,再到回来的多主机多虚拟机的发展。现实的业务需求和发展就决定了这个管理平台的出现。2. 架构Nova – 弹性计算模块,虚拟机相关围绕虚拟机相关的所有操作(KVM,Xen,Linux Container)Neutron – 网络模块Li...

2018-05-24 16:31:30 1171

原创 优雅的解决qt线程关闭问题!QThread: Destroyed while thread is still running

参考博客 https://blog.csdn.net/liang19890820/article/details/52186626:写的不错!,我还不知道qt5已经封装出了这样的接口,一般我还是自己封装出方法,通过标志位实现关闭!void QThread::requestInterruption(){ Q_D(QThread); QMutexLocker locker(&...

2018-05-22 14:50:03 18767 2

原创 LINUX内核专题——内存管理

LINUX内核专题——内存管理

2018-05-17 20:34:43 529

原创 QT其他线程和UI主线程通信方式

1:为什么会有这个问题:      其实当我们真正开发一个有实体业务需求的界面软件的时候,就躲不开上面提到的问题——QT其他线程和UI主线程通信。原因是什么,耗时的操作不能再界面ui线程中操作执行,这样会让界面卡死,当然这不仅仅是QT有这个问题,MFC、安卓都是这样的。但现实是你躲不开业务的耗时操作,比如你点击一下按钮,可能按钮对应的底层业务逻辑需要执行一大堆东西,没办法不耗时。当然从另外一个角度...

2018-05-13 00:20:31 7644 3

原创 解决树莓派IOError: [Errno Invalid sample rate] -9997 采样率16K错误

树莓派在基于pyaudio录音的时候会提示如上错误,这主要是使用的树莓派声卡不支持当前的采用率,没关系,其实在alsa架构下我们可以通过声卡的插件实现转换。在树莓派下家目录创建一个声卡隐藏配置文件 .asoundrc。特别不要在你的pyaudio里面设置打开声卡的编号因为下面的配置以及配置了pcm.!default { type hw card 1}ctl.!default {...

2018-05-13 00:18:11 11158 21

原创 Object::connect: No such slot

信号槽出现这样的问题一定要注意以下几点: ThreadFromQThread work_download ; QObject::connect(this, SIGNAL(send_down_sig(int)),\ &work_download, SLOT(recv_down_info(int)));注意槽函数仅仅是填写函数名称,而不是真实地址,qt自己...

2018-05-10 11:19:56 792 1

原创 python专题 python基础

python专题:一 python基础(python3)学编程嘛就是要对自己狠一点。要稳准狠!其实python在大学的时候就学了一部分,本次写博客主要是系统的再学习一遍!磨磨唧唧学完了都几年以后了,所以这个博客专栏准备用4个月时间,把python的基础到高级全部过一遍!1.变量和常量:       这个就基础了,变量和常量的主要最为本质的原因是内存中,该块内存的读写权限,常量是不可以被重新赋值的,...

2018-03-06 23:15:21 935

原创 windows 驱动开发之路(一)

windows 驱动开发之路(一)

2017-12-26 00:16:04 1560

原创 树莓派3Bwifi命令行连接问题

Successfully initialized wpa_supplicantctrl_iface exists and seems to be in use - cannot override itDelete '/var/run/wpa_supplicant/wlan0' manually if it is not used anymoreFailed to initialize con

2017-12-03 23:46:34 3288

原创 x86的保护模式(一)

10月份就剩明天一天了,今天晚上突袭一下,写篇新博客 2017年10月30日18:13:23 BY :张飞online

2017-10-30 18:15:57 527

原创 qt中的线程套路

qt的线程还是非常优雅的,当然我们可以使用系统自带的函数接口创建线程,但是跨平台移植似乎就是问题。qt的线程是可以支持跨平台的移植的。qt的线程非常简单,就是继承QThread然后重写run方法,run函数就是我们的线程主体,对于重写其实本质就是一个回调接口了。好了注意重点:在主函数实例化然后调用start方法就开始运行线程了,千万不要调用函数调用的急眼了,把run函数也调用了。

2017-10-16 22:39:40 499

原创 Linux进程调度算法,不同的调度策略、实时性,完全公平调度算法CFS

搞清楚Linux进程调度算法,不同的调度策略、实时性,完全公平调度算法

2017-09-21 23:20:59 769

原创 VS2013 + QT5.7.0静态编译 错误 .NMAKE:fatal error U1077. return code 0x2,使用 类 模板 需要 模板 参数列表

NMAKE:fatal error U1077. return code 0x2 qt静态编译qt 支持xp

2017-09-21 17:52:32 8583

原创 Linux的进程,线程以及调度(fork与僵尸,内存泄漏,task结构体,停止状态与作业控制)

1.Linux进程生命周期(就绪、运行、睡眠、停止、僵死)2.僵尸是个什么鬼?3.停止状态与作业控制,cpulimit4.内存泄漏的真实含义5.task_struct以及task_struct之间的关系6.初见fork和僵尸

2017-09-13 21:28:30 565

原创 反汇编分析之:虚函数,虚表,多态

站坑

2017-09-10 18:16:49 420

原创 反汇编分析之:继承,多重继承,多层继承,父子类指针本质

谈面向对象语言不能不谈继承,这也是面向对象语言天生的优势,大大提高了代码的复用,在c语言中我们也可以通过结构体嵌套的方式,来实现继承,倘若看本c++的书,一个继承都能来来回回讲个几十回合。我们通过反汇编来看看继承的本质究竟是什么?一:继承                                                                        1、不继承...

2017-09-10 16:56:51 799 1

原创 Win32事件消息处理函数

事件 消息    Windows中的事件是一个"动作",这个动作可能是用户操作应用程序产生的,也可能是Windows自己产生的.而消息,就是用来描述这些"动作"的,比如:    这个动作是什么时候产生的?    哪个应用程序产生的?    在什么位置产生的?    等等。。。    事件驱动消息,消息封装事件Windows为了能够准确的描述这些信息,提供了一个结构体

2017-09-03 12:53:23 1995

原创 win32编程学习(一)

多字节字符 什么是多字节字符,其实就是顾名思义,对于ASCII码编码的字符,像英文的字母,一个字符占用一个字节,而汉字就需要多个字节来表示了。1.1什么是ASCII码 ASCII 码其实就是字母对应二进制的一个编码,下面的表格就是部分ASCII表。1.2什么是ASCII码扩展编码上面我们没有详细的讲编码的具体是什么,一个字节是8位,但是一开始标准的ASCII表只用了低7位,高

2017-09-02 16:37:18 860

原创 system.img,userdata.img,ramdisk.img,recovery.img,cache.img,boot.img关系解析

1、系统镜像(system.img)系统镜像是地址ROM最常使用的一个镜像,用于存储Android系统的核心文件,System.img就是设备中system目录的镜像,里面包含了Android系统主要的目录和文件。一般这些文件是不允许修改的。系统镜像对应的文件名一般叫system.img,当然,系统镜像的文件可以人以命名,之所以叫system.img,是为了与生成镜像文件之前的system目录

2017-08-30 23:50:26 7436 2

原创 引用和指针有什么区别,汇编分析(最真实)

可能,

2017-08-30 21:44:25 565

原创 拷贝构造函数和无参构造函数,深浅拷贝

1.何为构造函数       1.1构造函数是什么?这个,怎么说都可以,其主要作用是初始化,也可以说了是c++提供的一种初始化的格式方法吧,我没觉得他有多么神奇,牛逼。具体来说就是 没有返回值,(是没有,不是void),函数名和类名相同,在创建对象,分配内存的时候,就进行了初始化,可以重载 这不就是我c结构体在创建的时候大括号初始化嘛,【构造函数其实主要是用于编译器调用】我觉的这句话是非常

2017-08-28 00:15:33 1054

原创 Linux下原子操作(信号量 自旋锁)的实现原理和底层代码分析

zhan keng

2017-08-27 00:13:24 4328 2

原创 内核中的同步_临界区与竞争状态、内核同步措施、并发实例

先占坑

2017-08-25 23:41:14 427

转载 宋宝华:Linux的任督二脉——进程调度和内存管理

Linux的任督二脉:进程调度和内存管理 转宋宝华老师 :地址 http://blog.csdn.net/21cnbao/article/details/77505330 大牛之作,钦佩!!!《穆赫兰道》与《内陆帝国》 我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU、内存资...

2017-08-23 21:22:24 5298

原创 windriver下的WDC_DMAContigBufLock函数和WDC_DMASGBufLock函数的区别

对于DMA内存的分配主要有俩种,但是不管如何目的是找到。(对于什么是dma就没必要解释了)代开发:https://blog.csdn.net/u013372900/article/details/97004166 一般来说我们在底层分配分配一块大的内存的(所谓底层是指物理地址,而不是通过操作系统的页式管理的虚拟地址),由于Dma的底层传输的实现是基于系统总线的物理地址。...

2017-08-21 22:03:08 2800

原创 sizeof是如何实现的,和内核里面宏如出一辙

0x00   很多东西用多了就缺乏了,洞察力,觉得就该如此。这也许就是中国那句老话:当局者迷。今天看到c群里面的一个学生问求一个数组的大小如何写,当然不由自主的敲了sizeof  0x04sizeof是一个运算符不是函数,但是我突然觉得,他是如何实现的那?如果是一个字符串还可以判断末尾的 '\0' 那对一块内存如何去判断他的结束那?   0x08注意sizeof

2017-08-19 00:39:52 9940

原创 win32 线程的互斥和同步

1.首先说的是什么是互斥,什么是同步。以前我觉的互斥和同步是一个感念,最起码在哲学上这俩个东西的目的是一致的,但是其实互斥和同步还是不一样的。具体来说我们以资源来举例子。 互斥:是对于同一资源,每一时刻只能其中一个线程操作,至于是A线程还是B线程,这个无所谓,反正就是AB不能同时来操作临界资源。 同步:同步的核心是有序一致,要有先后顺序,比如我们就要让 A先操作,然后B才能

2017-08-13 22:10:12 315

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除