自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 go语言TCP学习

TCP Server端流程:1.监听端口2.接收客户端请求建立连接3.创建goroutine处理连接func process(conn net.Conn) { //net.conn可以在多个线程中同时安全读写 defer conn.Close() //关闭连接 for ; ; { reader := bufio.NewReader(conn) var buf [128]byt...

2020-02-27 17:55:26 228

原创 go语言文件基本操作

文件打开操作const ( O_RDONLY int = syscall.O_RDONLY //只读模式打开文件 O_WRONLY int = syscall.O_WRONLY //只写模式打开文件 O_RDWR int = syscall.O_RDWR //读写模式打开文件 O_APPEND int = syscall.O_APPEND //写操作时将数据附加到文件尾部 O_...

2020-02-27 11:03:36 264

原创 goroutine泄漏发生的情况

发生情况:发送到一个没有接受者的channel。从没有发送者的channel中接收数据向已满的 buffered channel 写,但是没有读select操作在所有case上阻塞.死循环。...

2020-02-26 13:33:18 391

原创 .go语言是否存在内存泄露问题?发现go语言内存泄漏的2种方法

为什么会发生?1、给系统压力,内存占用增大,但停止打压后,内存不能降低,则可能有内存泄漏。2、top不能实时反映程序占用内存,因Go向系统申请内存不使用后,并不立即归还系统。3、程序占用系统内存、Go的堆内存、实际使用内存:从系统申请的内存会在Go的内存池管理,整块的内存页,长时间不被访问并满足一定条件后,才归还给操作系统。又因为有GC,堆内存也不能代表内存占用,清理过之后剩下的,才是实际...

2020-02-26 13:31:18 929

原创 go语言panic。go语言的panic后,是否可以让其恢复?

Panic:宕机,程序终止运行。代码运行错误或Runtime层手动触发宕机:在go中可以在程序中手动触发宕机,让程序崩溃,可以及时发现错误,同时减少可能的损失。Defer:defer语句会在宕机前被处理。可以用来在宕机发生前进行宕机信息处理。可以让宕机恢复,使用recover:有panic的情况下会捕获,程序不会宕机。...

2020-02-26 13:29:01 678

原创 go语言多线程并发的问题?

竞态问题:当多线程并发运行的程序竞争访问和修改同一块资源时。(解决:互斥锁sync.Mutex,读写互斥锁sync.RWMutex,等待组sync.WaitGroup,原子操作atomic)...

2020-02-26 13:24:26 628

原创 go语言的协程与我们传统的线程的区别?

协程属于线程,即一个线程下面可以开辟多个协程。协程是用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。当多个协程切换时,由于其同属于一个线程,所以可以看作是同步执行的,不存在同时共享资源的情况,可以不加锁的访问全局变量,切换上下文非常快。对于不需要cpu大量参与的业务场景...

2020-02-26 13:23:22 425

原创 RPC远程调用,go语言实现RPC小Demo

RPC(远程过程调用):它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。采用客户机/服务器模式。请求程序是一个客户机、而服务服务提供程序就是一个服务器。**过程:**1.调用客户端句柄;执行传送参数。2.调用本地系统内核发送网络消息。3.消息传送到远程主机。4.服务器句柄得到消息并取得参数。5.执行远程过程。6.执行的过程将结果返回服务器句柄。7.服务...

2020-02-26 13:21:02 395

原创 RPC和MQ

RPC与MQ相同:1、都利于大型系统的解耦;2、都提供子系统之间的交互,特别是异构子系统(如java\node等不同开发语言);不同:1、RPC侧重功能调用,因此多半是同步的;备注:也有基于MQ上实现RPC的,这样的话就是异步的,MQ本身,如rabbitMQ也有提供实现RPC的能力;2、MQ 的使用,一方面是基于性能的考虑,比如服务端不能快速的响应客户端(或客户端也不要求实时...

2020-02-25 16:29:52 471

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除