摘要: 我们知道一个程序可以包含多个进程,每个进程中可以创建多个线程,在线程中又可以创建成千上万甚至更多个协程。进程和线程的创建以及调度需要在内核态和用户态之间切换;而协程的创建和调度都在用户态,不需要和内核态进行交互。所以这就注定创建和维持协程运行所牺牲的性能,要远小于进程和线程。另外,协程都是以一组的形 阅读全文
posted @ 2020-04-09 15:17 酱油和醋 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 由于公司现有项目是基于support构建的,学习该项目的时候,同时建立一个项目用于实习和验证。使用AndroidStudio新建项目时,发现默认选中“use androidx.* artifacts”,且不可更改,这样新建的项目导致和support的一些属性相冲突。解决的方法不要使用API Level 28以上的SDK。 首先,打开“SDK Manager”(Tools-->SDK Man... 阅读全文
posted @ 2020-03-31 15:18 酱油和醋 阅读(1763) 评论(0) 推荐(0) 编辑
摘要: 信号是一种软件中断。常驻程序尤其需要注意处理这些信号,如果没有处理,同时也没有了解信号的默认动作,进程可能会莫名其妙的退出或者core。信号早已有之,但在老的操作系统中,可能会出现信号丢失。4.3BSD和SVR3之后增加了可靠信号机制,我们可以放心使用信号机制。本文根据阅读Nginx代码,参考其信号处理机制,结合自己编码中的经验,总结了信号使用方法和注意事项。 #define SIGHUP 1... 阅读全文
posted @ 2019-06-25 10:52 酱油和醋 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 头文件/usr/include/asm-generic/errno-base.h定义错误码: #ifndef _ASM_GENERIC_ERRNO_BASE_H#define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or ... 阅读全文
posted @ 2019-05-09 15:56 酱油和醋 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 使用如下命令清除缓存: git config --system --unset credential.helper 阅读全文
posted @ 2019-01-04 16:05 酱油和醋 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 相比于静态链接库,Linux上的动态链接库和可执行程序是同一种格式,都是ELF格式。原理上动态库也能和可执行程序一样直接运行。 比如,可以直接运行“/lib64/ld-linux-x86-64.so.2”,还有“/lib/x86_64-linux-gnu/libpthread.so.0”, 还有“/lib/x86_64-linux-gnu/libc.so.6”等等。举个例子,libc.so.6... 阅读全文
posted @ 2018-09-14 09:12 酱油和醋 阅读(1083) 评论(1) 推荐(1) 编辑
摘要: connect是socket套接口编程中非常重要的一个函数,它用于客户机连接使用TCP协议打开的服务机。 在实际项目中,connect有同步连接和异步连接两种模式。 同步连接指的是,我们设置socket套接字为阻塞模式,调用connect之后,程序一直等待,直到该函数返回成功或者失败。如果连接过程中,发生了超时重传,接口的耗时时间有可能达127秒之久。假如我们的服务器程序只有一个网络线程,同步... 阅读全文
posted @ 2018-09-13 10:50 酱油和醋 阅读(2844) 评论(0) 推荐(0) 编辑
摘要: 1、STM32的基础知识STM32是意法半导体公司,基于ARM Cortex®-M0,M0+,M3, M4和M7内核生产的系列通用MCU。截止当前时间为止(20190515),STM32有STM32F0、STM32G0、STM32F1、STM32F2、STM32F3、STM32F4、STM32F7、STM32MP1、STM32H7、STM32L0、STM32L1、STM32L4、STM32L4+... 阅读全文
posted @ 2018-07-28 15:59 酱油和醋 阅读(1925) 评论(0) 推荐(0) 编辑
摘要: 1--编译准备QtAV的安装编译总指导说明:https://github.com/wang-bin/QtAV/wiki/Build-QtAV QtAV的源代码:https://github.com/wang-bin/QtAV FFmpeg的开发依赖库,ffmpeg-4.1-win64-dev.zip:https://ffmpeg.zeranoe.com/builds/ FFmpeg的运行依赖库,... 阅读全文
posted @ 2018-07-14 18:33 酱油和醋 阅读(3995) 评论(0) 推荐(1) 编辑
摘要: 有些工程项目中,会发现一些.s(小写)或者.S(S大写)的汇编文件。发现他们还是有细微的差别: .s 汇编语言源程序;后续编译操作:汇编 .S 汇编语言源程序;后续编译操作:预处理,汇编 我们知道对于一个源代码文件,编译有4个步骤: 预处理(Pre-Processing)-->编译(Compiling)-->汇编(Assembling)-->链接(Linking) ... 阅读全文
posted @ 2018-04-07 19:56 酱油和醋 阅读(1177) 评论(0) 推荐(0) 编辑
摘要: 在C++11之前,要实现函数对象或者仿函数,主要参考《C++设计新思维》中的Loki库,它采用模板推导的方式来实现。虽然Loki可以模拟函数对象,但其代码看起来比较晦涩,使用又不方便。在C++11以后,开始原生支持函数对象,新标准中的用法简单清晰,所有的可调用对象有了统一的调用方式,极易上手。本文总结函数对象的各种使用方法。 std::function的定义 #include tem... 阅读全文
posted @ 2018-03-12 14:39 酱油和醋 阅读(400) 评论(0) 推荐(0) 编辑
摘要: typedef unsigned short int sa_family_t;#define __SOCKADDR_COMMON(sa_prefix) sa_family_t sa_prefix##family#define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int))/* Structure describing a gener... 阅读全文
posted @ 2018-03-11 12:46 酱油和醋 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 在Linux先编译软件基本都是采用configure文件生成makefile,或者,cmake生成makefile文件两种方式。它们生成的makefile文件,一般默认不支持-g调试选项。但我们使用这种方式编译出来的静态库时,如果程序运行中core在静态库中,我们看不到有用的相关信息。所以有必要编译出debug版本。针对configure文件而言: 第一种方法:./configure -h, 我们... 阅读全文
posted @ 2018-03-04 17:02 酱油和醋 阅读(2077) 评论(0) 推荐(0) 编辑
摘要: 时间函数之间的关系 struct tm{ int tm_sec; // 代表目前秒数,正常范围0-59,但允许至61秒; int tm_min; // 代表目前分数,范围为0-59。 int tm_hour; // 从午夜算起的小时数,范围为0-23。 int tm_mday; // 目前月份的日数,范围为1-31。 int tm_m... 阅读全文
posted @ 2018-01-09 13:07 酱油和醋 阅读(3559) 评论(0) 推荐(0) 编辑
摘要: 步骤步骤:1.安装JDK;2.安装Tomcat;3.安装Zookeeper;4.安装Dubbo; 修改Consumer配置文件 阅读全文
posted @ 2016-01-02 22:41 酱油和醋 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 配置Java开发环境变量 在"系统变量"中设置3项属性,JAVA_HOME, PATH, CLASSPATH。 变量设置参数如下: 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.8.0_191 变量名:CLASSPATH 变量值:.;%JAVA_HOME% 阅读全文
posted @ 2015-05-11 11:45 酱油和醋 阅读(244) 评论(0) 推荐(0) 编辑
摘要: glibc是标准C库的GNU实现。我们采用C/C++所写的程序,运行时基本都依赖与它。如果我们想看当前机器glibc的源代码,首先需要知道当前机器glibc的版本号,然后到glibc的官网下载对应版本的源代码。查看当前机器glibc的版本号第一种方法:使用命令ldd,查看可执行程序依赖libc的路径。由上可知,系统采用的是libc-2.19.so的动态库,那么glibc的版本号是2.19。第二种方... 阅读全文
posted @ 2015-05-03 14:18 酱油和醋 阅读(17933) 评论(0) 推荐(0) 编辑
摘要: 昨天看一篇关于libco的博文,里面提到了一个由于全静态链接导致的bug。全静态链接?以前没有接触过这个概念,特意到网上搜了下,原来是一个程序将其依赖的所有动态库都替换成对应静态库,即使是libc.so,libm.so,libstdc++.so这种系统级别的动态库。全静态链接出来的可执行程序,不依赖 阅读全文
posted @ 2015-05-01 20:15 酱油和醋 阅读(3031) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2015-04-07 12:25 酱油和醋 阅读(214) 评论(0) 推荐(0) 编辑
摘要: #51单片机#最小系统开发板 阅读全文
posted @ 2015-04-01 21:37 酱油和醋 阅读(297) 评论(0) 推荐(0) 编辑