当前位置: 首页 > news >正文

腾讯云运营开发 golang一面

在这里插入图片描述

redis为什么单线程会快

每秒10w吞吐量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

io多路复用

在这里插入图片描述
一个文件描述符整体拷贝;调用epoll_ctl 单个传递
内核遍历文件描述符判断是否有事件发送;回调函数列表维护
修改有事件发送的socket为可读或可写,返回整个文件描述符;返回链表

select

在这里插入图片描述

poll

在这里插入图片描述

epoll

在这里插入图片描述

进程通信、同步方式有哪些

在这里插入图片描述
在这里插入图片描述

线程间同步

在这里插入图片描述
在这里插入图片描述

goroutine和线程开销对比

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

为什么要有GMP模型,为什么不用原有的线程进程模型

  • 锁竞争
  • 队列任务分配均匀
  • M阻塞P绑定新的M
    在这里插入图片描述
    在这里插入图片描述

使用goroutine中遇到的问题

  • 数据竞争:锁 sync \ channel(有缓冲区、无缓冲区)
  • 防止死锁
  • 资源泄露:确保所有 goroutine 在完成后能够正确退出。WaitGroup 可以帮助等待一组 goroutine 完成。通过上下文管理 goroutine 的取消和超时,避免长时间运行的 goroutine。确保在不再需要使用时关闭 channels,防止资源泄露。

mysql索引为什么用B+树

在这里插入图片描述

TCP断开连接为什么要等待2MSL

在这里插入图片描述
在这里插入图片描述

半连接队列

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
全连接队列满了怎么办?
在这里插入图片描述
在这里插入图片描述

半连接队列满了怎么办?
一般是丢弃
在这里插入图片描述

手写快排

package mainimport ("fmt"
)func main() {nums := []int{1,1,1,1,1}fast_sort(nums)fmt.Println(nums)
}func fast_sort(nums []int){if len(nums)<=1{return}l,r := 0, len(nums)-1sen := nums[l]for l<r{for l<r&&nums[r]>sen{r--}nums[l] = nums[r]for l<r&&nums[l] <= sen{l++}nums[r] = nums[l]}nums[l] = senfast_sort(nums[:l])fast_sort(nums[l+1:])
}

相关文章:

  • map和unordered_map
  • 树莓派3B+ wiringPi库安装
  • Gin 框架指南(代码+通俗解析版)
  • linux - 权限的概念
  • 嵌入式开发学习日志(数据结构--单链表)Day20
  • docker-compose——安装mysql8
  • 【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)
  • GAN简读
  • 我的多条件查询
  • C2S-Scale:Cell2Sentence v2
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的CNC机床控制器技术方案‌
  • Ubuntu磁盘空间分析:du命令及常用组合
  • [思维模式-37]:什么是事?什么是物?什么事物?如何通过数学的方法阐述事物?
  • 360智语:以全栈技术重塑企业级智能体开发新标杆
  • 【行为型之观察者模式】游戏开发实战——Unity事件驱动架构的核心实现策略
  • 基于 art 下的类加载机制,实现函数抽取壳
  • 嵌入式C语言中指针的不同类型及其特点分析
  • idea springboot 配置文件 中文显示
  • 高速系统设计实例设计分析二
  • CSS:选择器的优先级
  • 2025争做巾帼好网民活动启动,彰显新时代女性网民风采
  • 八部门:支持符合条件的小微企业在新三板挂牌,规范成长后到北交所上市
  • 北证50年内涨超42%,创历史新高!后市机构怎么看?
  • 阳朔兴坪镇:在建乾元桥“垮塌”是谣言,系降雨导致工程挡土墙倾斜
  • 港股上市首日大涨,宁德时代“新动力”何在?曾毓群详谈零碳科技布局
  • 杭州3宗住宅用地收金42.49亿元,最高溢价率51.38%