Go语言中文网 为您找到相关结果 226

golang kafka 2

package main import ( "fmt" "math/rand" "os" "strconv" "strings" "time" "github.com/Shopify/sarama" "github.com/bsm/sarama-cluster" //support automatic consumer-group rebalancing and offset tracking "github.com/sdbaiguanghe/glog" ) var ( topics = "test0" ) // consumer 消费者 func consumer() { groupID := "group-1" config := cluster.NewConfig() config.G...阅读全文

博文 2019-01-29 00:34:44 wz998

go 无锁队列

无锁队列适用场景: 两个线程之间的交互数据, 一个线程生产数据, 另外一个线程消费数据,效率高缺点:需要使用固定分配的空间,不能动态增加/减少长度,存在空间浪费和无法扩展空间问题package main import ( "fmt" "reflect" "strings" "time" )type LoopQueue struct{ start int end int length int name string data []interface{} } func (this* LoopQueue)InitQueue(length int, name string)bool{ if nil == this || length <= 0{ return false } this.data = ...阅读全文

博文 2017-07-08 03:52:48 jinjiashan

GoLang 并发控制

GoLang中控制并发有两种方式: sync.WaitGroup 和 channel 下面是两种方法的对比 sync.WaitGroup,该方法最大优点是Wait()可以阻塞到队列中的所有任务都执行完才解除阻塞,但是它的缺点是不能够指定并发协程数量. channel优点:能够利用带缓存的channel指定并发协程goroutine,比较灵活.但是它的缺点是如果使用不当容易造成死锁;并且他还需要自己判定并发goroutine是否执行完. 但是相对而言,channel更加灵活,使用更加方便,同时通过超时处理机制可以很好的避免channel造成的程序死锁,因此利用channel实现程序并发,更加方便,更加易用...阅读全文

博文 2016-04-21 21:00:01 liangguangchuan

golang的http不是并发的么?

下面这代码同时打开两个页面访问,第二个要等第一个输出1,2后才会输出1,http不是并发的么