Golang中国

gomgo

Golang China 第 1405 号会员,加入于 2014-06-10 11:01


gomgo最近回复了


回复了 gomgo 创建的主题: ssl golang nginx 配置问题 2017-04-08 07:30

请站长把这个问题删除吧

回复了 gomgo 创建的主题: ssl golang nginx 配置问题 2017-04-08 07:28

睡一觉就好了!

昨晚就是不行!

基本没啥事的!

唉!打扰大家乐了

回复了 gomgo 创建的主题: 写了个 两个数相加的 goroutine,也没见快啊! 2016-12-07 14:14

给Add做一个大循环是什么意思呢?

数字大了,内存猛涨!很大的数,机器没反应了!

在 Go by Example 的示例程序中 /stateful-goroutines 每秒大约 800,000 次操作

高质量的-goroutines还需要多看,目前公开的大多是基础示例

给Add做一个大循环怎么写呢?

回复了 gomgo 创建的主题: 写了个 两个数相加的 goroutine,也没见快啊! 2016-12-02 17:25

嗨,我拿一个大数测时,结果。。。

重启机器呗,

所以放在网上时顺手改了个数字 100

多谢,各位回复

回复了 gomgo 创建的主题: go chan 的顺序 为什么是这样的? 2016-11-19 22:37

反复比较,加上for 循环,单核与多核 time.Sleep(1 * time.Second)

总算有点明白了

总是用框架,还是有弊端的啊

回复了 gomgo 创建的主题: go chan 的顺序 为什么是这样的? 2016-11-19 22:19
package main

import (
"fmt"
"runtime"
)

func main() {
var MULTICORE int = runtime.NumCPU()
fmt.Println(MULTICORE) // 4
runtime.GOMAXPROCS(MULTICORE)

ch := make(chan int)

go func() { ch <- 1 }()
go func() { ch <- 2 }()
go func() { ch <- 3 }()
go func() { ch <- 4 }()
go func() { ch <- 5 }()
go func() { ch <- 6 }()

u, v, w, x, y, z := <-ch, <-ch, <-ch, <-ch, <-ch, <-ch
fmt.Println(u, v, w, x, y, z)

}

好像即使多核情况下,顺序还是不变啊???
多次执行仍然固定顺序输出: 6 1 2 3 4 5

回复了 gomgo 创建的主题: go chan 的顺序 为什么是这样的? 2016-11-19 22:08

@zmguozi : 多核是下面这样的么? 哦,明白了些! 耗费了时间啊,没真正明白一个知识点

package main

import (
"fmt"
"runtime"
)

func main() {
var MULTICORE int = runtime.NumCPU() //number of core
fmt.Println(MULTICORE)               // 4
runtime.GOMAXPROCS(MULTICORE)        //running in multicore

ch := make(chan int)

go func() { ch <- 1 }()
go func() { ch <- 2 }()
go func() { ch <- 3 }()
go func() { ch <- 4 }()
go func() { ch <- 5 }()
go func() { ch <- 6 }()

x, y, z := <-ch, <-ch, <-ch
fmt.Println(x, y, z)

u, v, w := <-ch, <-ch, <-ch
fmt.Println(u, v, w)

}
回复了 gomgo 创建的主题: go chan 的顺序 为什么是这样的? 2016-11-19 21:43

@jthmath : 执行好像很有顺序,总是输出 6 1 2 3 4 5

package main

import "fmt"

func main() {

ch := make(chan int)

go func() { ch <- 1 }()

go func() { ch <- 2 }()

go func() { ch <- 3 }()

go func() { ch <- 4 }()

go func() { ch <- 5 }()

go func() { ch <- 6 }()

u, v, w, x, y, z := <-ch, <-ch, <-ch, <-ch, <-ch, <-ch

fmt.Println(u, v, w, x, y, z)

}
回复了 gomgo 创建的主题: go chan 的顺序 为什么是这样的? 2016-11-19 21:40

@zmguozi : 2 好像是执行了

package main

import "fmt"

func main() {

ch := make(chan int)

go func() { ch <- 1 }()

go func() { ch <- 2 }()

go func() { ch <- 3 }()

x, y := <-ch, <-ch

fmt.Println(x, y)

z := <-ch

fmt.Println(z)
}

输出
3 1
2

回复了 gomgo 创建的主题: go chan 的顺序 为什么是这样的? 2016-11-19 20:16
package main

import "fmt"

func main() {

ch := make(chan int)

go func() { ch <- 1 }()

go func() { ch <- 2 }()

go func() { ch <- 3 }()

x, y := <-ch, <-ch

fmt.Println(x, y)

}

打印结果是 3 1 , 请问 2 哪里去了?

gomgo 创建的更多回复