- 博客(3)
- 收藏
- 关注
原创 TCP黏包出现以及解决思路
TCP黏包发生的主要原因是tcp是以数据流的形式进行传递的,在保持长连接的时候可以进行多次收发黏包可能发生在发送端也可能发生在接收端发送端:1.由Nagle算法造成的发送端黏包:Nagle算法是一种改善网络传输效率的算法,简单来说,当我们提交一段数据给tcp发送的时候,TCP不立刻发送此数据,而是等待一小段时间看看等待时间内是否还有要发送的数据,若有则会一次性把这两段数据发送出去。既在等待时间内同时发送不满足MSS,(Maxitum Segment Size 这个最大值一般是)那么则会出现黏包现
2022-03-16 12:02:08 2371
原创 GO通道练习
package learnChannelimport ( "fmt" "sync")/* 单纯让函数并发是没有意义的,函数与函数之间需要交换数据才能体现函数并发的意义 虽然可以使用共享内存进行数据交换,但共享内存在不同的goroutine中容易发生竞态问题(资源竞争),为了保证数据交换的正确性 必须使用互斥锁进行枷锁,但这样做会造成资源的浪费 Go语言的并发模型是CSP 提倡通过通信共享内存而不是通过共享内存实现通信 如果说goroutine是Go程序的并发执行体,channel就.
2022-03-11 11:20:43 187
原创 Goroutine解析
Go语言的并发是通过goroutine实现的,类似于线程,属于用户态线程,我们可以根据需要创建成千上万个Goroutine并发工作。Goroutine是由Go语言运行时的runtime调度完成的,而线程是由操作系统调度完成的Go语言提供了channel在多个goroutine间进行通信,Goroutine和channel是Go语言秉承的CSP(并发模式)的重要实现基础Goroutine是用户态的线程OS线程是操作系统线程 一般有固定的栈内存(通常是2MB),一个goroutine的栈在其生.
2022-03-10 14:49:50 183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人