/assets/images/avatar.jpeg

Harry's Space

VSCode 项目多窗口改为多 Tab 样式

环境

  • macOS Ventura 13.4
  • VSCode 1.79.2

问题

当打开多个项目时,每个项目都占一个新的窗口,日常工作经常会打开至少五个以上项目,多窗口切换不方便,个人更习惯只开一个窗口,多个项目分多个 Tab 的模式 /2023-07-01/vscode-multi-tab/vscode-multi-window.png

Go 语言 Channel 最佳实践

简介

Channel 基本概念介绍

基本使用方法参见 Go指南

Go 语言中的通道(channel)是一种特殊的类型。通道像一个传送带或者队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺序。每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。

Go 语言中的值方法和指针方法

概念

函数和方法

在 Go 语言中,我们可以为自定义类型定义方法。方法是一个与特定类型关联的函数。方法可以被定义在值类型上或指针类型上。这两种方法分别称为值方法和指针方法。

Go 协程调度原理及应用

什么是协程?

进程和线程

一个应用程序时运行在操作系统上的一个进程。进程是一个运行在自己独立内存空间的独立执行体,是操作系统进行资源分配的最小单位。一个进程则有一个或多个线程组成,这些线程是共享进程内存地址空间的执行体,是操作系统进行任务调度的最小单位。而使用多线程进行工作时,由于共享父进程的内存空间等资源,访问同一个数据需要对其进行加锁,保证同一时间只有一个线程操作一个数据。这样不仅会提高编码的复杂度,还会有多个线程抢占锁、线程切换带来的额外开销。