后端工程进阶| 青训营笔记

news2026/4/4 18:19:42

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

并发编程

  • 协程Goroutine
  • 通道Channel
  • 锁Lock

    并发基础

  1. 串行程序与并发程序:串行程序特指只能被顺序执行的指令列表,并发程序则是可以被并发执行的两个及以上的串行程序的综合体。
  2. 并发程序与并行程序:并发程序是指可以被同时发起执行的程序,而并行程序则被设计成可以在并行的硬件上执行的并发程序。
    多进程编程

进程之间的通信被叫做IPC(Inter-Process Communication),从处理机制可划分为三大类:基于通信的IPC基于信号的IPC基于同步方法的IPC。基于通信的IPC又分为以数据传送为手段的IPC和共享内存为手段的IPC。前者包括管道(pipe)消息队列(message queue)管道可以传送字节流,消息队列可以传送结构化消息对象。以共享内存为手段的IPC的方法主要是基于共享内存区(shared memory)为代表,速度最快。基于信号的IPC是系统的信号(signal)机制,唯一异步的IPC。

Channels

一个channel是一个通信机制,它可以让一个goroutine通过它给另一个goroutine发送值信息。 go //创建 ch := make(chan int) // ch has type 'chan int' ch = make(chan int) // unbuffered channel ch = make(chan int, 0) // unbuffered channel ch = make(chan int, 3) // buffered channel with capacity 3 var ch1 chan int // ch1是一个正常的channel,不是单向的 var ch2 chan<- float64// ch2是单向channel,只用于写float64数据 var ch3 <-chan int // ch3是单向channel,只用于读取int数据 //发送,接受 ch <- x // a send statement x = <-ch // a receive expression in an assignment statement <-ch // a receive statement; result is discarded //关闭 close(ch)

依赖管理

  • Go Module

Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。

Go.mod其实就是一个Modules,关于Modules的官方定义为:

Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性。Modules替换旧的基于GOPATH的方法,来指定使用哪些源文件。

Modules和传统的GOPATH不同,不需要包含例如src,bin这样的子目录,一个源代码目录甚至是空目录都可以作为Modules,只要其中包含有go.mod文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1128052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Telegram 引入了国产小程序容器技术

Telegram 宣布为其开发者提供了一项“能够在 App 中运行迷你应用”的新功能&#xff08; 迷你应用即 Mini App&#xff0c;下文中以“小程序”代替&#xff09;。 在一篇博客文章中&#xff0c;Telegram 的开发者写到“小程序提供了可替代互联网网站的灵活界面&#xff08;cre…

DataX 数据迁移

1、前期准备 Linux系统 Python&#xff08;最好是2&#xff09; Jdk 1.8以上 2、安装Python2 --更新软件包 sudo apt update --安装python2 sudo apt install python2 --查看python版本 python2 --version 3、下载DataX Linux下载DataX wget http://datax-opensource.o…

攻防世界-Ph0en1x-100

第一次独立使用frida解安卓题&#xff0c;没分析代码 Steps 使用jadx打开apk分析主要代码 最主要的就是这个if判断了&#xff0c;安装apk后&#xff0c;有一个输入框和一个check按钮&#xff0c;会根据输入的结果Toast&#xff1a;Success or Failed。 getSecret(getFlag()).eq…

深入了解JavaScript中的AJAX和HTTP请求

在现代Web开发中&#xff0c;AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;和HTTP请求被广泛应用于实现动态交互式网页。本文将深入探讨AJAX的概念、工作原理以及使用方法。 什么是AJAX&#xff1f; AJAX是一种利用JavaScript和HTTP请求与服务器进行异步通信的…

基于公开数据集,5 分钟生成个性可视化数据报告

云布道师 简介&#xff1a; 本次活动将基于内置电商、广告、出行、汽车、国内生产总值等公开数据集&#xff0c;通过DataWorks 与 MaxCompute 搭建可视化数据报告。 活动时间 2023 年 10 月 8 日-2023 年 11 月 10 日 参赛者首先前往参赛页面领取产品免费资源&#xff0c;依…

Redis基于布隆过滤器解决缓存穿透问题(15)

Redis基于布隆过滤器解决缓存穿透问题 1.布隆过滤器基本介绍2.布隆过滤器的优缺点3.布隆过滤器的原理4.缓存穿透问题5.解决Redis缓存穿透问题 1.布隆过滤器基本介绍 布隆过滤器适用于判断某个数据是否在集合中存在&#xff0c;可能存在一定的误判&#xff0c; Bloom Filter基本…

教育行业如何通过互联网推广品牌?媒介盒子告诉你

近年来&#xff0c;国民对教育的重视程度日趋上升&#xff0c;教育行业也日益壮大&#xff0c;数字化时代的来临也使教育行业推广品牌的方式更加多样化&#xff0c;接下来媒介盒子就和大家分享&#xff1a;教育行业如何通过互联网推广品牌。 一、 发布软文进行品牌推广 数字…

docker-compose安装ES7.14和Kibana7.14(有账号密码)

一、docker-compose安装ES7.14.0和kibana7.14.0 1、下载镜像 1.1、ES镜像 docker pull elasticsearch:7.14.0 1.2、kibana镜像 docker pull kibana:7.14.0 2、docker-compose安装ES和kibana 2.1、创建配置文件目录和文件 #创建目录 mkdir -p /home/es-kibana/config mkdir…

“它经济”盛行,宠物食品行业如何做好口碑营销

口碑营销能够为企业带来潜在优势&#xff0c;让企业实现可持续发展&#xff0c;好的口碑能够提升品牌的传播速度&#xff0c;作为宠物食品行业&#xff0c;更需要营造良好口碑&#xff0c;才能获得源源不断的客户&#xff0c;那么如何打造口碑呢&#xff1f;数字化时代下&#…

前端请求后台接口失败处理逻辑

前后分离项目&#xff0c;前端为uni-app&#xff08;vue2&#xff09;&#xff0c;后台为java 后台api设置存在问题&#xff0c;部分公共接口为开放非登录用户访问权限 导致前台打开首页后立即跳转到登录提示页 怀疑是开了uni-app开发代理服务器&#xff0c;导致访问的代理服务…

openGaussDatakit让运维如丝般顺滑!

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

全国三维数字化创新设计大赛湖北赛区省赛成功举办

须弥芥子&#xff0c;数字如海。10月14日—15日&#xff0c;2023 年数字科技文化节——第16届全国三维数字化创新设计大赛湖北赛区省赛暨产教联合体大会在武汉软件工程职业学院成功举行。 &#xff08;大赛全体专家领导合影&#xff09; 全国三维数字化创新设计大赛组委会副秘…

《论文阅读》LORA:大型语言模型的低秩自适应 2021

《论文阅读》LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS 前言简介现有方法模型架构优点前言 今天为大家带来的是《LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS》 出版: 时间:2021年10月16日 类型:大语言模型的微调方法 关键词: 作者:Edward Hu,…

大型电商系统的订单设计

前言&#xff1a;电商系统需要满足商品、订单、支付、会员、优惠券、秒杀、拼团、砍价、分销、积分等多种经营需求。其中订单模块是比较核心复杂的&#xff0c;需要架构师在上面下不少功夫。 0、电商系统业务架构图 电商系统&#xff0c;一般包括前台商城系统及后台管理系统&am…

《动手学深度学习 Pytorch版》 10.2 注意力汇聚:Nadaraya-Watson 核回归

import torch from torch import nn from d2l import torch as d2l1964 年提出的 Nadaraya-Watson 核回归模型是一个简单但完整的例子&#xff0c;可以用于演示具有注意力机制的机器学习。 10.2.1 生成数据集 根据下面的非线性函数生成一个人工数据集&#xff0c;其中噪声项 …

GoLong的学习之路(七)语法之slice(切片)

书接上回&#xff0c;上回书中写道&#xff1a;指针&#xff0c;并说明了基本引用类型分配内存new和特定情况下slice&#xff08;切片&#xff09;&#xff0c;map&#xff0c;channel等集合函数的内存分配make。这篇文章就开始说明&#xff0c;slice。 文章目录 slice&#xf…

人生道路选择,恳请前辈指点,半路出家学习java?

人生道路选择&#xff0c;恳请前辈指点&#xff0c;半路出家学习java&#xff1f; 首先答案肯定是可以的。Java作为一门高级语言&#xff0c;它很优秀地屏蔽了许多繁枝末节。很多科班出身的人上来可能会先学C、C&#xff0c;要学会怎么管理内存等很底层的事情&#xff0c;而在开…

联想拯救者Y7000笔记本WiFi频繁掉线的坑

2023年10月的某一天开始&#xff0c;跟了我近4年的联想拯救者Y7000本本&#xff0c;无线网总是频繁的掉线&#xff0c;连上没几分钟就断开了&#xff0c;同办公室的其他电脑没这种情况出现&#xff0c;一开始以为是运营商网络问题&#xff0c;或者路由器问题导致的&#xff0c;…

多通道图片的卷积过程

多通道&#xff08;channels&#xff09;图片的卷积 如果输入图片是三维的&#xff08;三个channel&#xff09;&#xff0c;例如&#xff08;8&#xff0c;8&#xff0c;3&#xff09;&#xff0c;那么每一个filter的维度就是&#xff08;3&#xff0c;3&#xff0c;3&#x…

一文彻底理解C语言中的指针

假定给你一块非常小的内存&#xff0c;这块内存只有8字节&#xff0c;这里也没有高级语言&#xff0c;没有操作系统&#xff0c;你操作的数据单位是单个字节&#xff0c;你该怎样读写这块内存呢&#xff1f; 注意这里的限定&#xff0c;再读一遍&#xff0c;没有高级语言&#…