手工打造一把锁
接上篇(https://yq.aliyun.com/articles/59034 ),我们知道了lock的意义。回到之前的多线程加法操作,当然也可以通过pthread提供的互斥锁来保证结果是正确的。那互斥锁本身是如何保证原子性的呢?当然首先获得锁的操作需要是一个指令,而不能用加载-比对-存储这种类.
关于信号量与线程互斥锁的区别与实现
http://dev.firnow.com/course/6_system/linux/Linuxjs/20090901/173322.html
之前一直没有怎么关注过这个问题,前些日子在面试一家公司的时候,面试官提到了pthread_cond_wait/pthread_cond_signal的实现,当时答的不是很好,回来就查了nptl的代码。
go string的内部实现
# go string 内部实现
这个string的探索
来来个例子
```
func boo(a int, b int)(int, string){
return a + b, "abcd"
}
```
```
81079 000000000044dfa0 :
81080 44dfa0:>------48 c7 44 24 18 00 00 >--movq $0x0
go语言如何使用rbp, rsp, 参数如何传递, 为什么go的返回值写在后面
# 为什么go的返回值写在后面
go一直被鼓吹语法比java好, 性能跟c一样. 让我们来看一看go语言各部分对应的二进制指令, 是如何实现的
现在的想法是写个一系列文章, 把go的所有语法的实现方式都分析一遍, 不知道会不会半途而废
### 本文所有的分析方法, 结论都是本人猜测的, 查各种文档太费时间了, 当然不是乱猜, 都是有依据的
先看栈回溯最基本的方法, rbp, r
用汇编实现add函数
平台
macOS
工具
nasm
clang
文件
main.c
#include
int add(int a, int b);
int main() {
printf("the reuslt of 2 plus 3 is %d\n", add(2, 3));
return 0;
}
add.
前端代码是怎样智能生成的-语义化篇
作为阿里经济体前端委员会四大技术方向之一,前端智能化项目经历了2019双十一的阶段性考验,交出了不错的答卷,天猫淘宝双十一会场新增模块79.34%的线上代码由前端智能化项目自动生成。在此期间研发小组经历了许多困难与思考,本次《前端代码是怎样智能生成的》系列分享,将与大家分享前端智能化项目中技术与思考的点点滴滴。
TypeScript 核心概念梳理
8月20日,TypeScript 4.0 正式发布了( Announcing TypeScript 4.0 ),虽然没有重大的变更和特性,可以看做是 3.9 版本正常迭代,不过 Daniel 也在公告中说了:对于初学者而言,现在是最好的上手时机。