数据结构

  • 如何设计优雅的RPC接口

    RPC 是一种方便的网络通信编程模型,由于和编程语言的高度结合,大大减少了处理网络数据的复杂度,让代码可读性也有可观的提高。但是 RPC 本身的构成却比较复杂,由于受到编程语言、网…

    编程笔记 2021年7月20日
  • SNMP MIB(信息管理库)格式剖析

    MIB 是一个信息管理库,在该库中包含了大量的对象,这些对象有自己唯一的位置和名字。那么它们是如何进行区分的呢?本节将介绍这些信息格式。 对象标识符(OID) 管理信息库 MIB …

    编程笔记 2021年7月20日
  • FTP的命令和应答码

    在上述的 FTP 工作流程中,客户端成功连接 FTP 服务器以后,进行身了份验证、执行 FTP 命令等操作。这些操作都是客户端向 FTP 服务器发出的请求,而这些请求实际上是在发送…

    编程笔记 2021年7月20日
  • Java synchronized实现原理深度剖析

    刚刚开始学习 Java 的时候,一遇到多线程的问题就简单粗暴地使用 synchronized 关键字,对于当时的我们来说,synchronized 是多么的神奇和强大呀!那个时候我…

    编程笔记 2021年7月20日
  • Go语言找出重复行

    用于文件复制、打印、检索、排序、统计的程序通常有一个相似的结构:在输入接口上循环读取,然后对每一个元素进行一些计算,在运行时或者在最后输出结果,下面我们通过三个版本的 dup 程序…

    编程笔记 2021年7月20日
  • 网络爬虫是什么?

    本节我们先讲一下网络爬虫的概念,再讲一下网络爬虫的分类,期间会插入我个人的一些见解。 网络爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页…

    大数据 2021年7月20日
  • Go语言router请求路由

    在常见的 Web 框架中,router 是必备的组件。Go语言圈子里 router 也时常被称为 http 的 multiplexer。通过前面几节的学习,我们已经知道了如何用 h…

    编程笔记 2021年7月20日
  • Peterson算法(解决临界区问题)详解

    本节说明一个经典的基于软件的临界区问题的解决方案,称为 Peterson 算法。 Peterson 算法提供了解决临界区问题的一个很好的算法,并能说明满足互斥、进步、有限等待等要求…

    编程笔记 2021年7月20日
  • 临界区问题及其解决办法(抢占式内核和非抢占式内核)

    我们从讨论所谓的临界区问题开始考虑进程同步。 假设某个系统有 n 个进程 {P0,P1,…,Pn-1}。每个进程有一段代码,称为临界区,进程在执行该区时可能修改公共变…

    编程笔记 2021年7月20日
  • 什么是线程库,线程库类别及其应用

    线程库为程序员提供创建和管理线程的 API。实现线程库的主要方法有两种: 在用户空间中提供一个没有内核支持的库。这种库的所有代码和数据结构都位于用户空间。这意味着,调用库内的一个函…

    编程笔记 2021年7月20日