网站首页 返回列表 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。

Golang并发模型:轻松入门流水线模型
2020-06-10 02:52 admin golang模型

Golang作为一个实用主义的编程语言,非常注重性能,在语言特性上天然支持并发,它有多种并发模型,通过流水线模型系列文章,你会更好的使用Golang并发特性,提高你的程序性能。这篇文章主要介绍流水线模型的流水线概念,后面文章介绍流水线模型的FAN-IN和FAN-OUT,最后介绍下如何合理的关闭流水线的协程。Golang...
阅读全文

Golang并发模型:轻松入门流水线FAN模式
2020-06-10 02:52 admin golangFAN

前一篇文章,介绍了流水线模型的概念,这篇文章是流水线模型进阶,介绍FAN-IN和FAN-OUT,FAN模式可以让我们的流水线模型更好的利用Golang并发,提高软件性能。但FAN模式不一定是万能,不见得能提高程序的性能,甚至还不如普通的流水线。我们先介绍下FAN模式,再看看它怎么提升性能的,它是不是万能的。FAN-IN...
阅读全文

golang中archive/tar包详解
2020-06-10 02:51 admin golangarchive

go语言官方标准库提供tar库,以方便对tar的操作一、了解tar什么是tar?tar是一种打包格式,但不对文件进行压缩,所以打包后的文档一般远远大于zip和tar.gz,因为不需要压缩的原因,所以打包的速度是非常快的,打包时CPU占用率也很低。tar的目的是什么?方便文件的管理(帮助理解:就是你存在很多文件的时候,但...
阅读全文

golang中archive/zip包
2020-06-10 02:51 admin golangarchive

一、ZIP的操作压缩、解压二、GO中压缩操作1、创建zip文件2、向这个zip文件里写入要压缩的文件的头部信息和文件信息__packagemainimport("os""log""archive/zip""io""fmt")funcmain(){err:=Zip("demo.zip",[]string{})iferr!...
阅读全文

golang post模拟客户端多文件上传以及处理
2020-06-10 02:51 admin golangpost

为了模拟客户端和服务器端,我这儿开了两个进程,进程A(监听地址:http://192.168.50.250:8080路由/objects)进程B(监听地址:http://192.168.50.250:8081路由:/objetcs)方法都是post。进程A是监听客户上传的文件,然后模拟httpclien上传给进程B。在...
阅读全文

轻松检测Golang并发的数据竞争
2020-06-10 02:51 admin golang并发

Golang中我们使用Channel或者sync.Mutex等锁保护数据,有没有一种机制可以检测代码中的数据竞争呢?>背景知识>>数据竞争是并发情况下,存在多线程/协程读写相同数据的情况,必须存在至少一方写。另外,全是读的情况下是不存在数据竞争的。使用race检测数据竞争`gobuild`有个标记`race`可以帮助检...
阅读全文

golang 操作etcd租约以及监听kv变化
2020-06-10 02:51 admin golangetcd

定义错误常量:__const(NewLeaseErr=101LeasTtlErr=102KeepAliveErr=103PutErr=104GetErr=105RevokeErr=106)创建client:__varconf=clientv3.Config{Endpoints:[]string{"172.16.196....
阅读全文

golang实现子进程通信
2020-06-10 02:51 admin golang通信

这里用ping进程为例,在main函数中创建ping程序,然后将ping的执行结果通过管道(pipe)传递给主程序.主程序读取结果,然后打印,最后通过主程序发送系统信号(syscall.Signal)来结束ping.__cmd1:=exec.Command("ping","www.baidu.com")//创建子进程p...
阅读全文

mac golang 环境搭建
2020-06-10 02:51 admin golangMac

**一、mac前端安装****1、Homebrew**Homebrew是mac的包管理工具。Homebrew安装之前必须先安装Xcodecommandlinetools(用xcode-select--install进行安装)安装在此之前,必须保证Xcodecommandlinetools(**用xcode-select...
阅读全文

Golang 编译原理 计算器(通俗易懂)
2020-06-10 02:51 admin golang通俗易懂

**本文不需要你掌握任何编译原理的知识。只需要看懂简单的golang语言即可,完整的代码示例在,代码是从[writinganinterpreteringo](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2FOhBonsai%2Freading-not...
阅读全文

Golang并发:再也不愁选channel还是选锁
2020-06-10 02:51 admin golangchannel

周末又到了,为大家准备了一份实用干货:如何使用channel和Mutex解决并发问题,利用周末的好时光,配上音乐,思考一下吧?。来,问自己个问题:**面对并发问题,是用channel解决,还是用Mutex解决**?如果自己心里还没有清晰的答案,那就读下这篇文章,你会了解到:*使用channel解决并发问题的核心思路和示...
阅读全文

golang中bufio包
2020-06-10 02:51 admin golangbufio

一、介绍go标准库中的bufio最近用golang写了一个处理文件的脚本,由于其中涉及到了文件读写,开始使用golang中的io包,后来发现golang中提供了一个bufio的包,使用这个包可以大幅提高文件读写的效率,于是在网上搜索同样的文件读写为什么bufio要比io的读写更快速呢?根据网上的资料和阅读源码,以下来详...
阅读全文

Golang RabbitMQ 自动重连/重发生产者
2020-06-10 02:51 admin golangRabbitMQ

背景Golang里面采用来连接`rabbitmq`,使用之后发现这个库比较底层,只提供协议的封装。这个库用到生产环境不合适,包装了一层以提供更加稳定的功能,目标***断线重连:**这个需求不过分,生产环境各种网络问题,最起码的重连要支持,支持重连次数***消息重发:**这个要求不过分,Rabbitmq有消息确认机制关键...
阅读全文

Golang 定时任务管理
2020-06-10 02:51 admin golang定时

本文基于实现了一个CrontabJobManager。更加容易使用,同时也能够满足更加复杂的场景。,如果有用,欢迎点赞,欢迎讨论,欢迎找茬。需求在开发中,经常遇到一些需要定时任务的场景。各个语言都有定时语言的库,[GolangCron](https://github.com/robfig/cron/tree/v2)提供...
阅读全文

Golang并发模型:轻松入门select
2020-06-10 02:51 admin golangselect

之前的文章都提到过,**Golang的并发模型都来自生活,select也不例外**。举个例子:我们都知道一句话,“吃饭睡觉打豆豆”,这一句话里包含了3件事:1.妈妈喊你吃饭,你去吃饭。2.时间到了,要睡觉。3.没事做,打豆豆。在Golang里,select就是干这个事的:到吃饭了去吃饭,该睡觉了就睡觉,没事干就打豆豆。...
阅读全文
顶部 底部