Mike's Blog

  • 首页

  • 归档

  • 标签

  • 关于

  • 搜索

GDB

发表于 2019-01-23 | 更新于 2019-08-17 | 阅读次数:
本文字数: 12k

What is GDB?

alt

官方文档:

https://sourceware.org/gdb/download/onlinedocs/

GDB 是 GNU 项目的调试器,你可以用 GDB 查看另一个程序在执行过程中的内部内容, 或者在程序崩溃时,查看程序当时正在执行的操作。

阅读全文 »

MakeFile 编写

发表于 2019-01-20 | 更新于 2019-08-17 | 阅读次数:
本文字数: 3.9k

程序的编译与链接

1
2
3
4
5
6
7
8
9
10
11
# Top level makefile, the real shit is at src/Makefile

default: all

.DEFAULT:
cd src && $(MAKE) $@

install:
cd src && $(MAKE) $@

.PHONY: install

GNU Make 是一个工具,它从程序的源文件中控制程序的可执行文件和其他非源文件的生成。

阅读全文 »

C++ 多线程编程

发表于 2019-01-12 | 更新于 2019-08-17 | 阅读次数:
本文字数: 1.5k

多线程编程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class MutexLock
{
public:
MutexLock();
~MutexLock();

MutexLock(const MutexLock &mutex) = delete;
MutexLock &operator=(const MutexLock &mutex) = delete;

void lock();
void unlock();
bool IsLockedByThisThread() const;
pthread_mutex_t *getPthreadMutex();

private:
friend class Condition;

private:
pthread_mutex_t mutex_;
pid_t holder_;
};

这段时间,主要在分析和整理多线程相关的内容,主要是因为工作中我有负责部门基础库的开发维护,其中就包括线程库,然后近期要在组内做异步这一块的分享,所以也希望趁这个机会对这一块知识进行系统的梳理,然后自己也将 posix-thread 线程重新使用了一下,加深印象,基本覆盖到了相关关键接口的使用。

阅读全文 »

C++ 单元测试框架-gtest

发表于 2019-01-02 | 更新于 2019-08-17 | 阅读次数:
本文字数: 15k

Unit Test 和 gtest 介绍

alt

单元测试( Unit Test ,模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确,通过编写单元测试可以在编码阶段发现程序编码错误,甚至是程序设计错误。

单元测试不但可以增加开发者对于所完成代码的自信,同时,好的单元测试用例往往可以在 回归测试 的过程中,很好地保证之前所发生的修改没有破坏已有的程序逻辑。因此,单元测试不但不会成为开发者的负担,反而可以在保证开发质量的情况下,加速迭代开发的过程。

阅读全文 »

你有困惑吗

发表于 2018-12-15 | 更新于 2019-08-17 | 阅读次数:
本文字数: 2.1k

工程师层级人员讨论会 – 2018-12-7

avatar

上周,部门主管黄总和HR组织了一场讨论会,召集了大概20个开发,大概水平都是处于工程师层级,这个层级评定和你工作年龄无关,而是和你的工作产出,负责项目相关。在我看来,过去的大部分都是业务骨干,因为基本涉及部门所有产品线的所有开发人员,有工作两年的,工作4年,5年,8年的。

阅读全文 »

进程间通信-消息队列

发表于 2018-11-24 | 更新于 2019-08-17 | 阅读次数:
本文字数: 8.2k

Message Queue 使用场景

今天介绍一下消息队列,对此做个总结,酝酿了有一段时间,因为消息队列在开发中占据了一个很重要的地位。

一般这种系统设施,如果你是在 Linux 系统用户空间进行开发(内核开发除外的所有开发),需要懂得其原理、接口使用、消息框架构建机制、封装系统提供的 MQ 接口来对上层提供服务。如果你是从事内核开发,那还需要将这些系统设施的实现了解清楚。

阅读全文 »

不一样的周一

发表于 2018-11-19 | 更新于 2019-08-17 | 阅读次数:
本文字数: 1.8k

avatar
今天是 2018-11-19 日,周一,和以往的周一不太一样,首先我旁边少了一个人,导师加主管,上周离职了,惊讶加不解。不解的是公司发展到现在不容易,而他做到这个位置同样不易,而且已经不搞技术很久了,年龄也到了不惑有一,如果离开现在公司,外面还有更好的地方可以去吗?

阅读全文 »

操作系统-进程互斥和同步

发表于 2018-11-18 | 更新于 2019-08-17 | 阅读次数:
本文字数: 7.8k

背景

avatar

为什么会有同步和互斥? 因为计算机系统中有多个进程存在,多个进程间进行交互,会引起它们对 共享资源的访问,如果这些资源处理不当,就可能出现一些意想不到的情况,比如说 饥饿,死锁等一系列问题。

阅读全文 »

操作系统--进程间通信(一)

发表于 2018-11-14 | 更新于 2019-08-17 | 阅读次数:
本文字数: 5.8k

IPC 运用范畴

avatar

配图与本文无关,纯属有趣

相对于做点什么,我们更想睡懒觉,但是相对于睡觉,我想写总结!
今天把博客的 git 分支搞混了,浪费了一点时间。那么今天介绍一下进程间通信(IPC) 。进程间通信,我们从 << UNIX网络编程卷2:进程间通信 >> 最后一章 Sun RPC 谈起,那为什么呢? 因为我们去掌握一个东西,肯定是因为它有价值,我们才去学习,如果一些技术现在都不用了,淘汰了,那我们就没有必要去深究,只需学习其思想,浅尝辄止即可。

阅读全文 »

操作系统-线程概述

发表于 2018-11-09 | 更新于 2019-08-17 | 阅读次数:
本文字数: 3.4k

为什么使用线程

avatar

我们需要一种新的实体(线程),既能够满足不同实体之间可以并发执行,同时可以共享相同的地址空间和文件资源等,相对于进程,减少创建和切换时的开销。

阅读全文 »

123
Jiayun-Ye

Jiayun-Ye

Done is better than Perfect

24 日志
12 标签
RSS
GitHub E-Mail
Links
  • blog-yejy
  • thispointer
  • the-morning-paper
© 2018 – 2020 Jiayun-Ye