Engineering Notes

孟斌的小站

技术博客与学习记录

共 608 篇文章 标签与分类索引已启用

go实现队列

在Go语言中实现队列可以通过多种方式,最简单和直观的方法是使用切片(Slice)。队列是一种先进先出(FIFO)的数据结构,主要操作包括入队(Enqueue)和出队(Dequeue)。

go
继续阅读

Linux进程

Linux进程是系统中正在运行的程序的实例。每个进程都有一个唯一的进程标识符(PID),并且拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行状态的属性。进程可以创建其他进程,被创建的进程称为子进程,创建它们的进程称为父进程。这种关系形成了一个进程树。

继续阅读

僵尸进程

僵尸进程是指已经完成执行(终止)但仍然在操作系统的进程表中占有一个位置的进程。这种进程已经停止运行,不再占用系统资源,如CPU时间,但它仍然保留了一些信息,如进程ID、终止状态、运行时间等,等待父进程读取。在大多数操作系统中,当一个进程结束时,它会发送一个退出状态给它的父进程,然后进入僵尸状态。

继续阅读

使用联合索引优化查询效率

在数据库设计和查询优化中,联合索引是一个强大的工具,它可以显著提高数据检索的速度。然而,要充分利用联合索引的优势,我们需要理解它们是如何影响查询效率的。本文将探讨联合索引的工作原理以及如何使用它们来优化查询。

继续阅读

GMP模型

GMP模型概述

GMP模型是Go语言的并发调度模型,它是由Goroutine、M(OS线程)和P(处理器)三个主要组件构成的。这个模型是Go运行时(runtime)用来调度Goroutines执行的机制,它允许数以万计的Goroutines能够在有限数量的线程上高效运行。下面是GMP模型各个组件的详细说明:

go
继续阅读

Solidity:ERC20

简介

ERC20是以太坊区块链上的一个标准,用于创建和发行智能合约,实现代币化的应用。它定义了一组通用的接口,使得开发者可以创建和使用代币,而不需要了解底层区块链技术的细节。以下是ERC20标准中的主要接口及其含义:

继续阅读

Solidity:chainlink

简介

Chainlink是一个去中心化的Oracle网络,它允许智能合约在链上与链下的数据进行安全和可靠的交互。Chainlink的目标是成为区块链和现实世界之间的桥梁,使得智能合约能够访问现实世界的数据,支付系统,API等,从而扩大其应用范围。

继续阅读

Solidity:多签钱包

什么是多签钱包

多签钱包,也称为多重签名钱包,是一种加密钱包,它需要多个私钥才能签署并发送交易。这种钱包的主要优点是提供了额外的安全层,因为即使一个私钥被盗,也无法进行交易,除非有其他私钥的授权。

继续阅读