码农的荒岛求生

103
获赞数
0
关注数
167
粉丝数
IP 属地未知
2018-09-05 加入
浏览 17.2k

公众号:码农的荒岛求生 | 计算机基础决定程序员高度

191 声望|学徒
c++
136
c
128
linux
44
后端
31
unix
16
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
1 青铜勋章
个人动态
  • 发布了文章2021-02-24
    线程间到底共享了哪些进程资源
    可是你真的理解了上面这句话吗?到底线程之间共享了哪些进程资源,共享资源意味着什么?共享资源这种机制是如何实现的?对此如果你没有答案的话,那么这意味着你几乎很难写出能正确工作的多线程程序,同时也意味着这篇文章就是为你准备的。
  • 发布了文章2021-02-23
    程序员应如何理解协程
    作为程序员,想必你多多少少听过协程这个词,这项技术近年来越来越多的出现在程序员的视野当中,尤其高性能高并发领域。当你的同学、同事提到协程时如果你的大脑一片空白,对其毫无概念。。。
  • 发布了文章2021-01-31
    函数运行时在内存中是什么样子?
    我们在之前的文章《高性能高并发服务器是如何实现的》一中提到了一项关键技术——协程,你知道协程的本质是什么吗?有的同学可能会说是用户线程,那么什么是用户态线程,这是怎么实现的?
  • 发布了文章2021-01-17
    高并发高性能服务器是如何实现的
    当在读这篇文章的时候,你想过没有,服务器是怎么把这篇文章发送给你的呢?说简单也简单,不就是一个用户请求吗?服务器根据请求从数据库中捞出这篇文章,然后通过网络发回去。说复杂也复杂,服务器是如何并行处理成千上万个用户请求呢?这里面涉及到哪些技术呢?这...
  • 发布了文章2021-01-16
    10张图让你彻底理解回调函数
    不知你是不是也有这样的疑惑,我们为什么需要回调函数这个概念呢?直接调用函数不就可以了?回调函数到底有什么作用?程序员到底该如何理解回调函数?
  • 发布了文章2021-01-13
    从小白到高手,你需要理解同步与异步
    在这篇文章中我们来讨论一下到底什么是同步,什么是异步,以及在编程中这两个概念到底意味着什么,这些是进一步掌握高性能、高并发技术的基础,因此非常关键。
  • 发布了文章2021-01-12
    进程切换与线程切换的区别
    对于程序员来说,我们在编程时实际上是不怎么操心内存问题的,对于使用Java、Python、JavaScript等类型语言的程序员来说更是如此,自动内存回收机制的引入使得使用这类语言的程序员几乎完全不用关心内存问题;即使对于编译型语言C/C++来说,程序员需要关心的也仅仅是...
  • 发布了文章2021-01-08
    一文彻底理解IO多路复用
    在讲解IO多路复用之前,我们需要预习一下文件以及文件描述符。什么是文件程序员使用I/O最终都逃不过文件。因为这篇同属于高性能、高并发系列,讲到高性能、高并发就离不开Linux/Unix,因此这里就来讨论一下Linux世界中的文件。实际上对于程序员来说文件是一个很简单...
  • 发布了文章2021-01-02
    意想不到,这个神奇的bug让我加班到深夜
    上线前照例忐忑不安了一番,因为工程量比较大,预估可能不会很顺利,但还不至于到了祈祷服务器不要出bug的地步,bug对于程序员来说简直是家常便饭,没有bug反而可能会嘀咕半天,这都是职业病,没治。
  • 发布了文章2021-01-01
    读取文件时,程序经历了什么?
    当我们使用C语言中的printf、C++中的"<<",Python中的print,Java中的System.out.println等时,这是I/O;当我们使用各种语言读写文件时,这也是I/O;当我们通过TCP/IP进行网络通信时,这同样是I/O;当我们使用鼠标龙飞凤舞时,当我们扛起键盘在评论区里指点江山...
  • 发布了文章2021-01-01
    看完这篇还不懂高并发中的线程与线程池你来打我
    从这篇开始将会开启高性能、高并发系列,本篇是该系列的开篇,主要关注多线程以及线程池。一切要从CPU说起你可能会有疑问,讲多线程为什么要从CPU说起呢?原因很简单,在这里没有那些时髦的概念,你可以更加清晰的看清问题的本质。CPU并不知道线程、进程之类的概念。...
  • 发布了文章2020-07-20
    通往编程高手之路
    亚达斯密在其经济学巨著《国富论》中提出了“看不见的那只手”的概念,意指市场机制对经济发展的作用,作为普通的个人来说我们在平时的生活中可能很难感受到市场机制所发挥的作用,但这只看不见的手却无时无刻不在发挥着它的作用。
  • 发布了文章2019-08-15
    程序?进程?傻傻分不清
    我们用一个例子来形象的讲解一下这个区别。程序其实本质上和我们的菜谱非常类似,一个菜谱规定了完成一道菜的整个流程,一步一步每个节点执行什么样的操作,但是看一遍菜谱是不能变出一道美味可口的菜肴的。要想真正做出一道菜就应该按照菜谱的要求走一遍,准备好食...
  • 发布了文章2019-08-15
    程序?进程?傻傻分不清
    我们用一个例子来形象的讲解一下这个区别。程序其实本质上和我们的菜谱非常类似,一个菜谱规定了完成一道菜的整个流程,一步一步每个节点执行什么样的操作,但是看一遍菜谱是不能变出一道美味可口的菜肴的。要想真正做出一道菜就应该按照菜谱的要求走一遍,准备好食...
  • 发布了文章2019-08-14
    四次挥手与Socket API
    在《三次握手与Socket API》中我们详细讲解了三次握手以及与之相关的API,三次握手是TCP协议的初始阶段,用来建立双方通信连接,显然有建立连接就有断开连接,那么TCP是如何断开连接的呢?
  • 发布了文章2019-08-10
    三次握手与Socket API
    一个连接唯一确定了发送方和接收方,除此之外一个连接还确定了双方“说话的方式”,三次握手规定:双方在说话前都要加一个数字,该数字用来记录这是彼此的第几句话了,比如:
  • 发布了文章2019-08-05
    如何实现一个简单的智能指针
    所谓智能指针指的是一种用起来像指针但又无需关心内存管理的一种机制。 普通指针的问题 C/C++中指针极为常见,但普通指针最大的问题就在于需要程序员记住分配内存后要手动释放,否则就会有内存泄漏或者引用野指针的风险。 比如有这样一个简单的类: {代码...} 如果在...
  • 发布了文章2019-07-13
    进程切换与线程切换的区别?
    对于程序员来说,我们在编程时实际上是不怎么操心内存问题的,对于使用Java、Python、JavaScript等动态类型语言的程序员来说更是如此,自动内存回收机制的引入使得使用这类语言的程序员几乎完全不用关心内存问题;即使对于编译型语言C/C++来说,程序员需要关心的也仅...
  • 发布了文章2019-07-06
    什么是程序?
    虽然在这里我们主要关注的是操作系统,但毕竟操作系统的目的就是能更好的运行用户程序,而且该教程主要是站在程序员的角度来讲解操作系统的,作为程序员是绕不开程序这个话题的。因此在深入理解操作系统之前还是有必要来聊一聊程序是怎么一回事。
  • 发布了文章2018-10-10
    如何查看进程工作路径
    比如,你在/home/mac下启动一个进程,那么该进程的工作目录就是/home/mac;如果你在/home/mac/bin下启动同一个程序,那么该进程的工作目录就变为/home/mac/bin。