- 博客(30)
- 收藏
- 关注
原创 服务器禁止设置多个IP来提供代理服务XXX把下面的网卡禁用或断开连接。
湖工大,锐捷禁止多IP提供代理服务,但是如果按照他提醒的一样,把有线网卡给禁用的话,那么就只能是无线上网了,无线上网网速不仅慢,还会搞得电脑和手机不能同时使用校园网。那么这时候我们能够把电脑端的无线网卡给禁用,而不禁用有线网卡。这样子就可以做到手机端和电脑端同时连接校园网,并且还不影响网速。
2023-05-31 16:38:48 915
原创 golang面经
4.golang中的map是有序还是无序的?6.golang中的context。1.tcp的三次握手和四次挥手。2.http中get和post。8.mysql的慢查询。3.http的状态码。5.进程间的通信方式。7.数据库中的四范式。
2022-12-09 10:45:19 314
原创 go的反射
为什么我们会需要反射呢?1.我们需要在程序运行中动态的获取对象的类型2.我们要修改任意类型变量的值3.要调用任意的方法(比如你给我传进来一个方法的名称或者你给我传进来一个方法的值,然后我去动态的调用它。)
2022-12-04 16:42:32 161
原创 golang中defer的底层原理
go的defer其实是有两个方案的:1.协程记录defer信息,函数退出时调用2.将defer代码直接编译进函数尾
2022-12-04 15:48:39 88
原创 golang的堆内存结构
首先,golang的虚拟内存单元叫做heapArena,go每次申请的虚拟内存单元为64MB,最多能有2^20个内存单元 ,所有的heapArena组成了mheap(go的堆内存)。 简单结构如图: go的堆内存用的是分级分配机制,也就是将一个堆内存分成不同的等级,不同等级的堆内存所占空间不同,如下图: 它会分配合适的内存块给对象,如果有一个小的对象,那么就让他放进最小的空间而不能把他放到大的空间里,如果把他放到大的内存里,会影响到大内存块的效率
2022-12-03 17:44:04 297
原创 go的协程栈
因为我们调用了Println函数,我们来看看Println的源代码,他的接收参数是空接口类型,那么就很有可能会逃逸,因为interface{}类型的函数往往会使用反射来看一下我传的值是什么类型的,用到反射就往往会逃逸到堆上了,因为在栈上很难做反射。golang的堆栈跟C++的堆栈是有所不同的,golang的栈是在堆上的,而C++的堆栈是分开的,golang协程栈的作用是记录协程的执行路径,局部变量,函数传参和函数返回值。大变量逃逸:过大的变量会导致栈空间不足,那就会让他逃逸到堆上。这里就涉及到逃逸分析了。
2022-12-02 23:33:01 345
原创 golang中的共享内存和管道
那是因为当管道中读取不到数据的时候,协程它会自动进入休眠,当有数据进来他才会被唤醒,不会一直占用内存,不像共用内存那样会一直阻塞导致占用内存。并且他们能做到同样的效果,而效率却不一样。在golang中,我们推荐用管道进行协程间的通信而不是用共享内存,什么叫用共享内存进行协程间的通信呢?上述代码就是通过共享内存进行协程间的通信。而下述代码就是通过管道进行协程间的通信。
2022-12-01 16:15:27 423
原创 golang中如何排除锁异常问题
如以上代码显示,当a复制b的时候,b已经上锁了,所以a复制的是上锁状态下的b,所以这时a也是上锁状态,不能重复上锁,程序会报错,报错信息是死锁。fmt.Println("b已上锁")fmt.Println("a已上锁")
2022-12-01 15:42:03 362
原创 浅聊一下golang中的线程
熟悉gmp模型的就知道g0其实是用来操作调度器的,而curg的类型是g指针,它指向了当前正在运行的g(也就是协程),最后来看下mos,他是个结构体,他在每个操作系统都有自己的定义,他记录着操作系统线程信息。golang的线程源代码在runtime2.go中的m结构体。注意此处的线程是golang中的线程,不是操作系统中的线程,操作系统的线程由操作系统来调度。其中我们只需重点关注一下g0,curg, 和mos就行了。
2022-11-29 14:41:10 406
原创 golang中的map
如图,golang中的map其实是个结构体,其中count是map中的数量,B是用来算有几个桶的,比如 a:=make(map[string]int,3) 中,B的值就是3,这时会map会准备2^3个桶。一:等量扩容:数据不多但是溢出桶多(比如之前的数据很多,但是删了很多的数据,导致溢出桶里的值很稀疏。其实就是溢出桶,因为一个桶只能放8个数据,那么当哈希碰撞严重的时候,就只能挂个溢出桶了。溢出桶会在map建立时自动生成。二:翻倍扩容:数据太多了 (这个也很好理解,就是溢出桶太多了,这时需要将普通桶变多)
2022-11-28 13:47:21 455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人