手工打造一把锁
接上篇(https://yq.aliyun.com/articles/59034 ),我们知道了lock的意义。回到之前的多线程加法操作,当然也可以通过pthread提供的互斥锁来保证结果是正确的。那互斥锁本身是如何保证原子性的呢?当然首先获得锁的操作需要是一个指令,而不能用加载-比对-存储这种类.
go语言如何使用rbp, rsp, 参数如何传递, 为什么go的返回值写在后面
# 为什么go的返回值写在后面
go一直被鼓吹语法比java好, 性能跟c一样. 让我们来看一看go语言各部分对应的二进制指令, 是如何实现的
现在的想法是写个一系列文章, 把go的所有语法的实现方式都分析一遍, 不知道会不会半途而废
### 本文所有的分析方法, 结论都是本人猜测的, 查各种文档太费时间了, 当然不是乱猜, 都是有依据的
先看栈回溯最基本的方法, rbp, r
烂尾工程: Java实现的汇编语言编译器
一个半拉子工程, 用Java实现的汇编语言编译器的介绍. 代码中使用中文命名. An unfinished project, an assembler implemented in Java, with naming in Chinese.
深入理解C++中的RVO
## 前言
考虑存在这样一个类如HeavyObject,其拷贝赋值操作比较耗时,通常你在使用函数返回这个类的一个对象时会习惯使用哪一种方式?或者会根据具体场景选择某一种方式?
```c
// style 1
HeavyObject func(Args param);
// style ...