4 chudongfang2015

尚未进行身份认证

我要认证

开心开心!!!!!!

等级
TA的排名 4k+

Git命令简写

以下为`zsh && oh-my-zsh`给出的Git简写方式,安装`oh-my-zsh`的同学可以直接用,未安装的同学也可把这些命令配置到自己的`~/.bash_profile `使用。命令比较多,可以直接Control + F / Command + F 搜索# Aliases# (sorted alphabetically)#alias g='git'alias...

2019-10-17 15:24:30

Git常用命令

回退$ git reset --hard HEAD^ 回退到上个版本$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前$ git reset --hard commit_id 退到/进到 指定commit的sha码...

2019-03-17 17:53:56

Android 判断Codec是否支持AdaptivePlayback模式

AdaptivePlayback模式用于判断codec在seekTo后是否需要flush()截止目前目前支持到 minSdkVersion 19 版本MediaCodecInfo codecInfo = videoCodec.getCodecInfo(); //从videoCodec中获取codecInfofor(String type: codecInfo.getSupporte...

2019-03-04 11:44:47

Android Studio 使用技巧 [自己总结]

类看类继承图 control + H查看子类 command + U跳转上一个 option + command + <下一个 option + command + >

2019-02-27 11:11:02

深入理解abstract class和interface

理解抽象类abstract class和interface在Java语言中都是用来进行抽象类(本文中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法,请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为我们带来什么好处呢?在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是...

2019-02-18 12:10:09

【工具】Unbuntu下利用Crontab定时备份Chrome书签

最近chrome又over了,不得不重新安装,但重新安装登录后发现书签无法还原了。由于google被墙,chrome书签的保存成了大问题。这里我用Linux下的crontab实现了书签的定时备份,这样就不怕书签丢啦。在Linux下书签保存位置为:~/.config/google-chrome/Default/Bookmarks假设我们现在要备份的位置为:/home/cdf/文档...

2018-05-15 23:32:52

C++ 虚函数表解析

前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不...

2018-04-24 11:59:24

Libfly协程库实现与原理——协程的优点与用处

Libfly协程库实现与原理——协程的优点与用处为什么写一个协程库?协程有什么优点?这些问题非常重要,在做一件事情前需要一个做他的最初动力对吧。我们先说一个普通的server模式 reactor: 这里有一个半同步/半异步模式的多线程结构,主线程监听socket,把相应的事件放入请求队列,然后工作线程进行在队列中取出事件,并执行相应的I/O。现在问题来了,这样的模式有没...

2018-03-17 00:36:39

[Muduo网络库源码分析] (13) net/EventLoopThread_h_c新建一个专门用于EventLoop的线程

新建一个专门用于 EventLoop 的线程实现:启动一个线程,在其中运行 EventLoop::loop()功能:运行Evenloop知识点条件变量使用:当多个线程对同一个变量进行操作时使用条件变量对其进行保护,条件变量同互斥锁一同起作用。代码及分析:EventLoopThread.h// Copyright 2010, Shu...

2018-03-11 21:35:14

[Muduo网络库源码分析] (12) net/Buffer_cc_h缓冲区(非阻塞 IO 必备)

缓冲区(非阻塞 IO 必备)实现:实现Buffer类功能:缓冲区,为非阻塞IO暂时存储数据,实现高效IO知识点:string的函数实现resize()Resizes the string content to n characters.If n is smaller than the current length of the string, ...

2018-03-11 19:22:10

二叉搜索树详解(C++实现)

二叉搜索树的定义二叉搜索树,也称有序二叉树,排序二叉树,是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;任意节点的左、右子树也分别为二叉查找树。没有键值相等的节点。二叉搜索数中序遍历为有序数组一、查找二叉搜索树中的某个元素在二叉搜...

2018-03-05 16:35:10

内存管理算法--Buddy伙伴算法

buddy system简介:buddy system内存管理,努力让内存分配与相邻内存合并能快速进行(对于普通算法来讲,合并内存相当困难),它利用的是计算机擅长处理2的幂运算。我们创建一系列空闲块列表,每一种都是2的倍数。举个例子,如果最小分配单元是8字节,整个内存空间有1M。我们创建8字节内存块链表,16字节内存块链表,32字节内存块链表,64,128,256,512,1k,2K,...

2018-03-03 22:58:13

Libfly协程库实现与原理——条件变量的实现

Libfly协程库简介:libfly协程库,采用C++作为编程语言,封装了协程类,并提供了协程基本操作和调度功能编写此协程库的目的是为了让协程理解起来更容易,让协程编程更加简单!正逐步完善代码注释与文档,欢迎大家一起讨论交流~Github地址:https://github.com/chudongfang/libflylibfly协程库条件变量的实现因为协程不会同时...

2018-02-25 22:29:04

Libfly协程库实现与原理——协程的实现与基本操作的实现

Libfly协程库简介:libfly协程库,采用C++作为编程语言,封装了协程类,并提供了协程基本操作和调度功能编写此协程库的目的是为了让协程理解起来更容易,让协程编程更加简单!正逐步完善代码注释与文档,欢迎大家一起讨论交流~Github地址:https://github.com/chudongfang/libfly一、协程的实现与线程类似一个协程包括以下三个...

2018-02-25 20:39:18

简述epoll下电平触发LT和边沿触发ET的区别

LT 电平触发 高电平触发EPOLLIN 事件 数据可读 内核中的socket接收缓冲区 为空 低电平 不会触发 内核中的socket接收缓冲区 不为空 高电平 会触发EPOLLOUT事件 数据可写 内核中的socket发送缓冲区不满 高电平 内核中的socket发送缓冲区 满 低电平ET 边沿触发 转换的时候触发 由低电平 -> 高电平 才会

2018-02-07 14:59:10

C++ boost库----share_from_this类的作用和实现原理

使用boost库时,经常会看到如下的类class A:public enable_share_from_this在什么情况下要使类A继承enable_share_from_this?使用场合:当类A被share_ptr管理,且在类A的成员函数里需要把当前类对象作为参数传给其他函数时,就需要传递一个指向自身的share_ptr。我们就使类A继承enable_share_from_th

2018-02-07 01:18:14

C++11 std::move语意经典理解

原文链接 I find it easiest to understand move semantics with example code. Let’s start with a very simple string class which only holds a pointer to a heap-allocated block of memory:#include #include

2018-02-01 16:41:08

C++11特性运用--lambda表达式

lambda表达式定义了一个匿名函数,并且可以捕获一定范围内的变量. 基本用法 [捕获列表] (参数表) 函数选项 -> 返回值类型 {函数体}例如:auto func = [](int a) -> int {return a*a; }//相当于int func(int a){ return a*a;}返回值类型可以省略编译器可以自动推

2018-02-01 16:04:57

C++11特性运用--线程篇

线程 #include线程的几个重要函数 thread t(func); join(); detach(); get_id(); hardware_concurrency();创建一个线程并等待子线程/*************************************************************************

2018-01-31 15:14:52

Make 命令(持续更新)

一. 背景Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建的项目,都可以用Make构建。make只是一个根据指定的Shell命令进行构建的工具。它的规则很简单,你规定要构建哪个文件、它依赖哪些源文件,当那些文件有变动时,如何重新构建它。二. MakeMake是一个很简单命令.make . //构建当前目录但先编译哪个文件,

2018-01-12 12:49:41

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。