对于golang一直存有觊觎之心,但一直苦于没有下定决心去学习研究,最近开始接触golang。就我个人来说,学习golang的原动力是因为想要站在java语言之外来审视java和其它语言的区别,再就是想瞻仰一下如此NB的语言。年前就想在2019年做一件事情,希望能从各个细节处做一次java和golang的对比分析,不评判语言的优劣,只想用简单的语言和可以随时执行的代码来表达出两者的区别和底
转载 2023-09-20 07:49:15
54阅读
内存,内存中的变量和指针 http://golangtutorials.blogspot
原创 2022-01-18 15:27:13
295阅读
文章目录GoLang之map的底层实现原理是什么(1)1.什么是 map2.map 的底层如何实现2.1map内存模型2.2创建 map2.3哈希函数2.4key 定位过程 GoLang之map的底层实现原理是什么(1)1.什么是 map维基百科里这样定义 map:In computer science, an associative array, map, symbol table, or d
转载 2024-06-11 14:40:48
33阅读
虽然golang是用C实现的,并且被称为下一代的C语言,但是golang跟C的差别还是很大的。它定义了一套很丰富的数据类型及数据结构,这些类型和结构或者是直接映射为C的数据类型,或者是用C struct来实现。了解golang的数据类型和数据结构的底层实现,将有助于我们更好的理解golang并写出质量更好的代码。基础类型源码在:$GOROOT/src/pkg/runtime/runtime.h(我
Redis(C语言实现)  底层为hashtable     1.非关系型的键值对数据库,可以根据键以O(1)的时间复杂度取出或插入关联值     2.Redis的数据是存在内存中的     3.键值对中键的类型可以是字符串,整型,浮点型等,且键是唯一的,但是最终存储形式都会转换为stri
转载 2023-08-30 08:49:09
18阅读
golang其他数据类型如Int,float等,跟大多数编程语言类似,主要介绍slice,channel,map的底层实现逻辑:目录一:slice底层数据结构:slice的创建slice的追加slice的拷贝二:channel底层数据结构channel创建向channel写数据的过程从一个channel读数据简单过程关闭channelchannel导致panic的场景常见用法三:map底层结构ma
转载 2023-10-12 12:38:50
103阅读
虽然golang是用C实现的,并且被称为下一代的C语言,但是golang跟C的差别还是很大的。它定义了一套很丰富的数据类型及数据结构,这些类型和结构或者是直接映射为C的数据类型,或者是用C struct来实现。了解golang的数据类型和数据结构的底层实现,将有助于我们更好的理解golang并写出质
原创 2021-07-26 14:14:46
316阅读
本文将基于 Golang 源码对 Timer 的底层实现进行深度剖析。主要包含以下内容:Timer 和 Ticker 在 Golang 中的底层实现细节,包括数据结构等选型。分析 time.Sleep 的实现细节,Golang 如何实现 Goroutine 的休眠。注:本文基于 go-1.13 源码进行分析,而在 go 的 1.14 版本中,关于定时器的实现略有一些改变,以后会再专门写一篇文章进行
转载 2023-09-29 11:25:15
121阅读
0. zookeeper是什么 zookeeper是一个分布式服务框架,主要用来进行分布式集群的管理以及解决分布式系统中数据一致性的问题zookeeper能够提供类似于文件系统树形目录结构的数据存储,并维护和监控目录结构以及数据的变化,一旦被监视的信息发生变化,zookeeper会自动把变化信息同步给对此处变化感兴趣的客户端,所以大体上来说zookeeper=文件系统+通知机制&nbsp
GM模型 第一个M怎么来的?,G怎么找到对应的P? 1. 系统启动的时候,首先跑的是主线程,那第一个M应该就是主线程吧M1 2. 然后这个主线程会绑定第一个P1 3. 咱们写的main函数,其实是作为一个goroutine来执行的(雨痕说的) 4. 也就是第一个P1就有了一个G1任务,然后第一个M1 ...
转载 2021-10-23 20:35:00
145阅读
2评论
前言Goroutine & Schedulergoroutine 是什么?通常 goroutine 会被当做 coroutine(协程)的 golang 实现,但实际上,goroutine 并非传统意义上的协程,现在主流的线程模型分三种:内核级线程模型、用户级线程模型和两级线程模型(也称混合型线程模型),传统的协程库属于用户级线程模型,而 goroutine 和它的 Go Schedule
转载 6月前
37阅读
Golang【gorm】模型
原创 2023-02-09 11:03:25
161阅读
go内存模型是指在特定的条件下,向goroutine中的变量写入值,在另一个goroutine中能够读取到该变量的值 多个goroute同时修改一个数据必须是有序的使用channel或sync、sync/atomic包中提供的同步原语,可保证对数据顺序访问
翻译 2020-03-30 20:38:14
1398阅读
面向对象篇 “如果你读自己6个月前写的代码并且感觉仍然很好,那么可能就有些不对劲了。这通常意味着你这6个月没有学到新东西。” ----Brett Cannon 文章目录面向对象篇1.`@classmethod` -- 类方法2.`@staticmethod` -- 静态方法3.实例方法4.`@property` -- 内置描述符5.私有成员的实现 “一切皆对象”是Python编程的核心思想之一
图解Golang的channel底层原理
转载 2021-07-22 17:14:00
341阅读
2评论
golang之channel底层实现原理 在前面的文章中golang的channel使用,我们已经了解了golang中channel的使用和优势。现在,让我们深入了解一下channel的底层实现原理,以更好地理解其工作方式。 通道的数据结构 在golang中,每个channel都有一个与之关联的数据结构。该数据结构由一个指向队列的缓冲区的指针、一个表示队列的容量的整数值以及两个表示队列的开始和结束
原创 2023-06-12 10:27:07
160阅读
golang的map底层数据结构 介绍 在Golang编程语言中,map是一种重要且常用的数据结构。它提供了一种方便的方式来存储和检索键值对。在本篇文章中,我们将深入探讨golang中map的底层数据结构,以帮助您更好地理解和使用它。 map的基本概念 map是一种无序的集合类型,它由键值对组成。每个键都是唯一的,而值则可以重复。map是基于哈希表实现的,这使得对于大多数操作,其性能都非常高效。
原创 2023-06-25 09:56:45
311阅读
golang操作mysql使用总结 前言Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能:sql.DB 通过数据库驱动为我们提供管理底层数据库连接的打开和关闭操作.sql.DB 为我们管理数据库连接池需要注意的是,sql.DB表示操作数据库的抽象访问接口,而非一个数据库连接对象;它可以根据drive
转载 2024-06-12 21:06:07
27阅读
前言最近看了相关的Redis设计核心相关的书籍,对Redis有了一些小的认识,然后自己也做一些产出加深映象,我会从几个方面去总结Redis设计的核心内容:Redis底层数据结构总结、Redis高性能由哪些基础支撑、Redis应用场景、那些有趣的功能。概述 本篇主要内容是Redis底层数据结构总结。Redis供用户直接使用的数据结构有String、List、Set、Zset、Hash等结构
1、redis 常见的数据结构 常见的 5 种: String :字符串,最基础的数据类型。 List :列表。 Hash :哈希对象。 Set :集合。 Sorted Set :有序集合, Set 的基础上加了个分值。 2、redis 持久化你们怎么做的? redis 持久化主要有两种
  • 1
  • 2
  • 3
  • 4
  • 5