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

[不断更新]"永恒之蓝"勒索病毒防护全攻略,再也不用拔网线了

5.12号WCry2.0勒索软件蠕虫大面积爆发,漏洞主要利用4.14号NSA泄露的武器库中的微软0day,进行大面积感染和传播。由于采用了RSA和AES加密算法,影响巨大。本文将不断更新,深度解读勒索软件的前世今生,并提供更多安全防护最佳实践。 为了确保云上用户尽可能的减少加密勒索软件影响,阿里云推荐用户按照以下措施可以有效降低您以及您的机构免受勒索软件伤害。详细防护加固文档、配置手册、推荐工具,戳这里: http://click.aliyun.com/m/21115/ 目录 1.数据备份与恢复:备份,备份,再备份。 2.关键业务账号安全策略 3. 强化网络访问控制 4. 阻止恶意的初始化访问 5. 搭建具有容灾能力的基础架构 6. 定期进行外部端口扫描 7...阅读全文

FreeWheel 寻大数据队友!

基础架构组Lead Software Engineer 职责描述:1. 公司级大数据平台的架构规划与设计,以提升平台的存储与计算能力;2. 大数据基础组件Kafka/HBase/YARN/Spark等的二次开发与性能优化;任职要求:1. 五年以上Hadoop及大数据生态圈产品实践经验,如Kafka/HBase/Presto/YARN/Spark等;2. 深入了解分布式系统、大数据平台、消息队列等高可用高弹性架构;3. 有志于建立大规模低延时数据处理系统,用于解决实际业务问题;4. 良好的英语听说读写能力。加分项:1. 有 Golang 开发经验;2. 有AWS开发经验;3. 对HDFS/Yarn/HBase/Hive/Spark/Presto相关组件的性能优化和补丁跟踪等有实际经验。数据产品...阅读全文

[北京] 东城雍和宫–快乐迭代 招聘 Go工程师(可年后入职)

公司简介: 我们是一家北京的开发并运营互联网创新产品的公司。公司团队以技术为主导。在技术方面,倡导全面自动化、拥抱新技术。产品设计方面,倡导极简主义、注重细节。我们有海量用户的操盘经验,曾经把一款娱乐类 App 做到将近 1000 万用户,在苹果 App Store 香港区、台湾区下载量排行第一。公司得到了顶级 VC 的投资。 福利待遇: 满足你期待的薪资,而且试用期薪资不打折,入职即缴纳五险一金,带薪年假,团建聚餐,节日福利,生日福利,免费体检,免费工作餐,旅游等福利多多… Go 工程师--职位描述: - 熟悉 Go 语言 - 有高负载 Server 实战经验 - 对计算机技术有发自内心的兴趣 - 必须有无障碍阅读英文技术文献的能力 联系方式: ...阅读全文

FreeWheel寻大数据队友

基础架构组 Lead Software Engineer 职责描述: 1. 公司级大数据平台的架构规划与设计,以提升平台的存储与计算能力; 2. 大数据基础组件Kafka/HBase/YARN/Spark等的二次开发与性能优化; 任职要求: 1. 五年以上Hadoop及大数据生态圈产品实践经验,如Kafka/HBase/Presto/YARN/Spark等; 2. 深入了解分布式系统、大数据平台、消息队列等高可用高弹性架构; 3. 有志于建立大规模低延时数据处理系统,用于解决实际业务问题; 4. 良好的英语听说读写能力。 加分项: 1. 有 Golang 开发经验; 2. 有AWS开发经验; 3. 对HDFS/Yarn/HBase/Hive/Spark/Presto相关组件的性能优化和补丁跟...阅读全文

资深运维研发工程师(SRE方向)

资深运维研发工程师(SRE方向)职位描述:1. 负责知乎服务器运维工具平台的开发和维护,保持系统能够横向扩展以及高度自动化2. 负责知乎 SRE 体系建设和支撑工具链的设计和开发3. 负责知乎稳定性建设任职要求:1. 4年以上基础架构相关的开发和运维实践经验2. 熟悉系统和网络知识,熟悉 APM 领域的架构理念和开源软件3. 至少熟练使用 Python、Java 和 Golang 其中的一种编程语言4. 熟悉典型互联网架构、微服务维护实践,和常见的分布式系统架构5. 优秀的沟通协调能力以及项目推进落地能力,并具备一定的抗压能力简历投递邮箱:xiaoxingqiang@zhihu.co...阅读全文

博文 2018-09-22 12:34:44 兴强_edd1

rate limiting _ golang

Rate limiting is an import mechanism for controlling resource utilzation and maintaining quality of service. Go elegantly supports rate with goroutines, channels, and tickers. package main import ( "fmt" "time" ) func main() { requests := make(chan int, 5) for i := 1; i <= 5; i++ { requests <- i } close(requests) limiter := time.Tick(time.Milliseco...阅读全文

博文 2015-03-20 03:00:01 jackkiexu

slices _ golang

Slices are a key data type in Go, giving a more powerful interface to sequences than arrays package main import ( "fmt" ) func main() { s := make([]string, 3) fmt.Println("emp:", s) s[0] = "a" s[1] = "b" s[2] = "c" fmt.Println("set : ", s) fmt.Println("get : ", s[2]) fmt.Println("len :", len(s)) s = append(s, "d") s = append(s, "e", "f") fmt.Printl...阅读全文

博文 2015-03-14 03:00:00 jackkiexu

execing process _ golang

In the previous example we looked at spawning external processes. We do this when we need an external process accessible to running Go process. Sometimes we just want to completely replace the current Go process with another one. To do this we'll use Go's implementation of classic exec function package main import ( "os" "os/exec" "syscall" ) func ...阅读全文

博文 2015-04-02 03:00:07 jackkiexu

constants _ golang

golang 中支持 长量 const or static package main import ( "fmt" "math" ) const s string = "constant" const a = 3000 func main() { const s = 3000 fmt.Println(s) const n = (3e8 / s) fmt.Println(n) fmt.Println(int64(n)) fmt.Println(math.Sin(n)) } 3000 100000 100000 0.03574879797201651 总结 : 1 : const 常量,"const n = 3000" 这样写是ok的,但是 "n = 3000" 或 "const n := 30...阅读全文

博文 2015-03-12 03:00:00 jackkiexu

Spawning process _ golang

Sometimes our Go programs need to spawn other, non-Go process. For example, the syntax highlighting on this site is implemented by spawning a pygmentize process from a Go program. Let's look at a few examples of spawning processes from Go package main import ( "fmt" "io/ioutil" "os/exec" ) func main() { dateCmd := exec.Command("date") dateOut, err ...阅读全文

博文 2015-04-02 03:00:07 jackkiexu

URL parsing _ golang

URLs provide a uniform way to locate resources. Here's how to pare URLs in Go package main import ( "fmt" "net" "net/url" ) func main() { s := "postgres://user:pass@host.com:5432/path?k=v#f" u, err := url.Parse(s) if err != nil { panic(err) } fmt.Println(u.Scheme) fmt.Println(u.User) fmt.Println(u.User.Username()) p, _ := u.User.Password() fmt.Prin...阅读全文

博文 2015-03-28 03:00:03 jackkiexu

if else _ golang

if else 在 golang package main import ( "fmt" ) func main() { if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } if 8%4 == 0 { fmt.Println("8 is divisible by 4") } if num := 9; num < 0 { fmt.Println(num, "is negative") } else if num < 10 { fmt.Println(num, "has 1 digit") } else { fmt.Println(num, "has multiple digits") } } 7 i...阅读全文

博文 2015-03-13 03:00:01 jackkiexu

k8s与dns--coredns的一些实战经验

coredns简介 安装新版本k8s,coredns已经成为默认dns了。之前是kube-dns。coredns是一个灵活,可扩展的DNS服务器,可以作为Kubernetes集群DNS。与Kubernetes一样,CoreDNS项目由CNCF主持。但是在实际使用中,需要一些注意的地方。 增加应用的反亲和性,防止coredns调度到一台主机上 coredns 所需要的资源非常小,所以很容易调度到一台主机上。coredns是一个系统组件,我们应该尽量让coredns分散部署,增强其可用性。故在deployment的yaml中增加如下设置: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - la...阅读全文

博文 2019-09-17 10:32:57 iyacontrol

Random numbers _ golang

Go's math/rand package provides pseudorandom number generation package main import ( "fmt" "math/rand" ) func main() { fmt.Print(rand.Intn(100), ",") fmt.Println() fmt.Println(rand.Float64()) fmt.Println((rand.Float64()*5)+5, ",") s1 := rand.NewSource(42) r1 := rand.New(s1) fmt.Println(r1.Intn(100)) s2 := rand.NewSource(42) r2 := rand.New(s2) fmt.P...阅读全文

博文 2015-03-27 04:00:06 jackkiexu

go相关书评

1、Go web编程 快速入门,用beego框架可以快速做一个网站(不上班状态,1周看完) 2、Go 并发编程 非常详细,打基础专用 (不上班状态,3周看完) 3、Go语言程序设计 各种经验总结点评,都是干货 (上班状态,每天3小时,2周看完) "Go语言程序设计" 之于 "Go并发编程", 就像"Essential C++" 之于 "C++ Primer " 前者都是高屋建瓴,最好是先看后者再看前...阅读全文

博文 2015-11-27 10:00:10 wk3368

workerPool _ golang

In this example we'll look at how to implement a worker pool using goroutines and channels package main import ( "fmt" "time" ) func worker(id int, jobs <-chan int, result chan<- int) { for j := range jobs { fmt.Println("worker", id, "processing job", j) time.Sleep(time.Second) result <- j * 2 } } func main() { jobs := make(chan int, 100) result :=...阅读全文

博文 2015-03-19 03:00:01 jackkiexu

base64 encoding _ golang

This syntax imports the encoding/base64 package with the b64 name instead of the default 64. It'll save us some space below package main import ( b64 "encoding/base64" "fmt" ) func main() { data := "abc123!?$*&()'-=@~" sEnc := b64.StdEncoding.EncodeToString([]byte(data)) fmt.Println(sEnc) sDec, _ := b64.StdEncoding.DecodeString(sEnc) fmt.Println(st...阅读全文

博文 2015-03-31 03:00:01 jackkiexu

range _ golang

range iterates over of elements in variety of data structures. Let's see how use range with some of the data structures we've already leraned package main import ( "fmt" ) func main() { nums := []int{1, 2, 3} sum := 0 for a, num := range nums { sum += num fmt.Println("a:", a) } fmt.Println("sum :", sum) for i, num := range nums { if num == 3 { fmt....阅读全文

博文 2015-03-14 03:00:00 jackkiexu

environment variables _ golang

Environment variables are a univerial mechanism for conveying configuration information to Unix programs. Let's look at how to set, get, and list environmant variables package main import ( "fmt" "os" "strings" ) func main() { os.Setenv("FOO", "1") fmt.Println("FOO:", os.Getenv("FOO")) fmt.Println("BAR:", os.Getenv("BAR")) for _, e := range os.Envi...阅读全文

博文 2015-04-02 03:00:07 jackkiexu

项目经理的工具箱

PDCA PDCA循环是美国质量管理专家休哈特博士首先提出的,由戴明采纳、宣传,获得普及,所以又称戴明环。全面质量管理的思想基础和方法依据就是PDCA循环。PDCA循环的含义是将质量管理分为四个阶段,即计划(Plan)、执行(Do)、检查(Check)、处理(Act)。在质量管理活动中,要求把各项工作按照作出计划、计划实施、检查实施效果,然后将成功的纳入标准,不成功的留待下一循环去解决。这一工作方法是质量管理的基本方法,也是企业管理各项工作的一般规律。 PDCA的思想可有质量问题推广到所有问题的分析和改进。 分析现状,发现问题。 PDCA环—大环套小环 分析质量问题中各种影响因素。 找出影响质量问题的主要原因。 针对主要原因,提出解决的措施并执行。 检查执行结果是否达到了预定的目标。 把成功...阅读全文

重磅干货免费下载!阿里云RDS团队论文被数据库顶会SIGMOD 2018收录

摘要: 来自阿里云RDS团队的论文“**TcpRT: Instrument and Diagnostic Analysis System for Service Quality of Cloud Databases at Massive Scale in Real-time” (TcpRT:面向大规模海量云数据库的服务质量实时采集与诊断系统)**被数据库顶会SIGMOD 2018收录。 ACM SIGMOD数据管理国际会议是由美国计算机协会(ACM) 数据管理专业委员会(SIGMOD)发起、在数据库领域具有最高学术地位的国际性学术会议。 SIGMOD和另外两大数据库会议VLDB、ICDE构成了数据库领域的三个顶级会议。相对而言,SIGMOD比另外两个会议的含金量更高,被录取的难度...阅读全文

time formatting _ golang

Go supports time formatting and parsing via pattern-based layouts package main import ( "fmt" "time" ) func main() { p := fmt.Println t := time.Now() p(t.Format(time.RFC3339)) t1, e := time.Parse(time.RFC3339, "2012-11-01T22:08:41+00:00") p(t1) p(e) p(t.Format("3:04PM")) p(t.Format("Mon Jan _2 15:04:05 2006")) p(t.Format("2006-01-02T15:04:05.999999...阅读全文

博文 2015-03-27 04:00:05 jackkiexu

closures _ golang

Go supports anonymous functions, which can form closures. Anonymous functions are useful when you want to define a function inline without having to name it package main import ( "fmt" ) func intSeq() func() int { i := 0 return func() int { i += 1 return i } } func main() { nextInt := intSeq() fmt.Println(nextInt()) fmt.Println(nextInt()) fmt.Print...阅读全文

博文 2015-03-15 10:00:01 jackkiexu

【厦门】招聘golang后端开发工程师(高并发高性能后台服务框架)

岗位职责: 1.参与设计、实现高性能高并发高可用的后端服务组件 任职要求: 1.开发经验丰富,熟悉golang语言,基础扎实,有大型项目经验优先 2.对技术有激情,喜欢钻研,能快速接受和掌握新技术,学习能力和工作责任心强,良好的沟通表达能力和团队协作能力 3.具备良好的技术素养,掌握c/c++优先 加分项 1.熟悉微服务 厦门微乐游戏(20-35k) 坐标厦门 简历投递:golang.vip@foxmail.co...阅读全文

招聘Golang工程师

招聘一位Golang的工程师,我们的坐标在北京东直门交通枢纽。 待遇是15-30K 职位描述: 1. 负责公司大数据平台分布式数据收集系统的架构、设计和开发工作 2. 负责分布式数据收集系统的性能监控和持续优化; 3. 跟踪分布式系统事务处理、分布式消息队列、实时传输协议等相关技术领域的发展趋势,并主动发起改良计划。 职位要求: 1. 优秀的代码能力,熟练掌握GO语言,对C/C++有掌握优先考虑; 2. 具有解决高并发问题的实战经验和分布式系统的研发经验; 3. 熟练掌握HTTP,TCP/IP等网络传输协议的工作原理,并有相关协议的调优经验; 4. 了解Nginx HTTP/STREAM框架工作原理的优先; 5. 熟练掌握Rabb...阅读全文

sorting _ golang

Go's sort package implements sorting for builtins and user-defined types. We'll look at sorting for builtins first package main import ( "fmt" "sort" ) func main() { strs := []string{"c", "a", "b"} sort.Strings(strs) fmt.Println("Strings:", strs) ints := []int{7, 2, 4} sort.Ints(ints) fmt.Println("Ints: ", ints) s := sort.IntsAreSorted(ints) fmt.Pr...阅读全文

博文 2015-03-21 03:00:01 jackkiexu

武汉招聘golang开发工程师

武汉楚易唯公司招聘 golang开发工程师 10k-20k(视能力和经验可面议) 任职要求: 1、具有良好的团队合作精神,有较强的开发能力和灵活性; 2、开发经验丰富,熟悉golang语言,基础扎实,2年以上golang开发工作经验,有完整的项目经验 ; 3、精通Golang协程,精通channel和锁,对高并发、高可用架构系统有正确、深刻的理解,要求有分布式服务器开发经验; 4、额Web开发经验,对RESTful概念有清晰的理解,并至少有一次API Server开发项目中运用到; 5、熟悉xml/json/protobuf等至少任意一种网络通信技术和数据交换格式 ; 6、良好的算法基础和清晰的编程思路; 7、工作积极主动,态度踏实认真,...阅读全文

控制 runC 的守护进程 Containerd

Containerd 是一个控制 [runC](http://www.oschina.net/p/runc) 的守护进程,主要是为了性能和密度。Containerd 提供一个命令行客户端和 API,在一个机器上管理容器。Containerd 使用 runC 来根据 OCI 规范运行容器 。 ![containerd](http://static.oschina.net/uploads/img/201512/18074631_M9nj.png) Containerd 利用 runC 的高级特性,比如 seccomp 和用户命名空间支持,还有检查点,克隆恢复,在线容器迁移等等。 ![Screen Shot 2015-12-17 at 12.17.36 PM](http://static.o...阅读全文

collection function _ golang

We often need our programs to perform operations on collection of data, like selecting all items that satisfy a given predicate or mapping all items to a new collection with a custom function. package main import ( "fmt" "strings" ) func Index(vs []string, t string) int { for i, v := range vs { if v == t { return i } } return -1 } func Include(vs [...阅读全文

博文 2015-03-24 03:00:01 jackkiexu

Reading files _ golang

Reading and writing files are basic tasks needed for many Go programs. First we'll look at some examples of reading files package main import ( "bufio" "fmt" "io" "io/ioutil" "os" ) func check(e error) { if e != nil { panic(e) } } func main() { dat, err := ioutil.ReadFile("/tmp/dat") check(err) fmt.Println(string(dat)) f, err := os.Open("/tmp/dat")...阅读全文

博文 2015-03-31 03:00:01 jackkiexu

non-blocking channel options _ golang

Basic sends and receives on channels are blocking. However, we can use select with a default clause to implement non-blocking sends, receives, and even non-blocking multi-way selects package main import ( "fmt" ) func main() { message := make(chan string) signals := make(chan bool) select { case msg := <-message: fmt.Println("received message", msg...阅读全文

博文 2015-03-23 14:00:00 jackkiexu

string functions _ golang

The standard libarary's strings package provides many useful string-related functions. Here are some examples to give you a sense of the package package main import "fmt" import s "strings" var p = fmt.Println func main() { p("Contains: ", s.Contains("tests", "es")) p("Count: ", s.Count("test", "t")) p("HasPrefix: ", s.HasPrefix("test", "te")) p("H...阅读全文

博文 2015-03-25 03:00:01 jackkiexu

epoch _ golang

A common requirement in programs is getting the number of seconds, millisecond, or nanoseconds since Unix epoch. Here's how to do it in Go package main import ( "fmt" "time" ) func main() { now := time.Now() secs := now.Unix() nanos := now.UnixNano() fmt.Println(now) millis := nanos / 1000000 fmt.Println(secs) fmt.Println(millis) fmt.Println(nanos)...阅读全文

博文 2015-03-27 04:00:06 jackkiexu

channel _ golang

Channels are the pipes that connect concurrent goroutines. You can send values into channels from one goroutine andreceive those values into another goroutine package main import ( "fmt" ) func main() { messages := make(chan string) go func() { messages <- "ping" }() msg := <-messages fmt.Println(msg) } ping 总结 : 1 : .........阅读全文

博文 2015-03-16 03:00:01 jackkiexu

atomic counters _ golang

The primary mechanism for managing state in Go is communication over channels. We saw this for example with worker pools. There are a few other options for managing state though. Here we'll look at using the sync/atomic package for atomic counters accessed by multiple goroutines package main import ( "fmt" "runtime" "sync/atomic" "time" ) func main...阅读全文

博文 2015-03-20 03:00:01 jackkiexu

Go语言程序设计.epub

【下载地址】国外最经典的Go语言著作,Go语言编程的先驱者Mark Summerfield的实践经验总结。这是一本Go语言实战指南,帮你了解Go语言,按Go语言的方式思考,以及使用Go语言来编写高性能软件。作者展示了如何编写充分利用Go语言突破性的特性和惯用法的代码,以及Go语言在其他语言之上所做的改进,并着重强调了Go语言的关键创新。注重实践教学,每章都提供了多个经过精心设计的代码示例。由国内第一个核心服务完全采用Go语言实现的团队——七牛团队核心成员翻译...阅读全文

common-line flags _ golang

Command-line flags are a common way to specify options for command-line programs. For eample, in wc -l the -l is a command-line flag package main import ( "flag" "fmt" ) func main() { wordPtr := flag.String("word", "foo", "a string") numbPtr := flag.Int("numb", 42, "an int") boolPtr := flag.Bool("fork", false, "a bool") var svar string flag.StringV...阅读全文

博文 2015-04-01 03:00:00 jackkiexu

招聘Go工程师(北京)

公司简介: 我们是一家开发并运营互联网创新产品的公司。公司团队以技术为主导。在技术方面,倡导全面自动化、拥抱新技术。产品设计方面,倡导极简主义、注重细节。我们有海量用户操盘经验,曾经把一款娱乐类 App 做到将近1000万用户,在苹果 App Store 香港区、台湾区下载量排行第一。公司得到了顶级 VC 的投资。 岗位要求: 熟悉 Go 语言 有高负载 Server 实战经验 对计算机技术有发自内心的兴趣 联系方式: QQ:3407909729 邮箱:xujuan@happyiterating.co...阅读全文

statefule goroutines _ golang

In the previous example we used explicit locking with mutexes to synchronize access to shared state across multiple goroutines. Another option is to use the built-in synchronization features of goroutines and channels to achieve the same result. This channel-based approach aligns with Go's ideas of sharing memory by communivating and having each pi...阅读全文

博文 2015-03-21 03:00:01 jackkiexu

line filters _ golang

A line filter is a common type of program that reads input on stdin, processes it, and then prints some derived result to stdout. grep and sed are common line filters package main import ( "bufio" "fmt" "os" "strings" ) func main() { scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { ucl := strings.ToUpper(scanner.Text()) fmt.Println(ucl) }...阅读全文

博文 2015-04-01 03:00:01 jackkiexu

interface _ golang

Interfaces are named collections of methods signatures package main import ( "fmt" "math" ) type geometry interface { area() float64 perim() float64 } type square struct { width, height float64 } type circle struct { radius float64 } func (s square) area() float64 { return s.width * s.height } func (s square) perim() float64 { return 2*s.width + 2*...阅读全文

博文 2015-03-15 10:00:01 jackkiexu

Tickers _ golang

Timers are for when you want to do something once in the future - tickers are for when you want to do something repeatedly at regular intervals. Here'an example of a ticker that ticks periodically until we stop it package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(time.Millisecond * 500) go func() { for t := range ticker.C ...阅读全文

博文 2015-03-19 03:00:00 jackkiexu

【北京】招聘 Go 工程师 待遇好 可年后的入职

公司简介: 我们是一家北京的开发并运营互联网创新产品的公司。公司团队以技术为主导。在技术方面,倡导全面自动化、拥抱新技术。产品设计方面,倡导极简主义、注重细节。我们有海量用户的操盘经验,曾经把一款娱乐类 App 做到将近 1000 万用户,在苹果 App Store 香港区、台湾区下载量排行第一。公司得到了顶级 VC 的投资。 福利待遇: 满足你期待的薪资,而且试用期薪资不打折,入职即缴纳五险一金,带薪年假,团建聚餐,节日福利,生日福利,免费体检,免费工作餐,旅游等福利多多… Go 工程师--职位描述: 熟悉 Go 语言 有高负载 Server 实战经验 对计算机技术有发自内心的兴趣 必须有无障碍阅读英文技术文献的能力 联...阅读全文

sorting functions _ golang

Sometimes we'll want to sort a collection by something other than its natural order. For example, suppose we wanted to sort strings by their length instead of alphabetically. Here's an example of custom sorts in Go package main import ( "fmt" "sort" ) type ByLength []string func (s ByLength) Len() int { return len(s) } func (s ByLength) Swap(i, j i...阅读全文

博文 2015-03-21 18:00:01 jackkiexu

writing files _ golang

Writing files in Go follows similar patterns to the ones we saw earlier for reading package main import ( "bufio" "fmt" "io/ioutil" "os" ) func check(e error) { if e != nil { panic(e) } } func main() { d1 := []byte("hello\ngo\n") err := ioutil.WriteFile("/tmp/dat", d1, 0644) check(err) f, err := os.Create("/tmp/dat") check(err) defer f.Close() d2 :...阅读全文

博文 2015-03-31 03:00:01 jackkiexu

mutexes _ golang

In the previous example we saw how to manage simple counter state using atomic operations. For more complex state we can use a mutex to safetly access data across multiple goroutines package main import ( "fmt" "math/rand" "runtime" "sync" "sync/atomic" "time" ) func main() { var state = make(map[int]int) var mutex = &sync.Mutex{} var ops int64 = 0...阅读全文

博文 2015-03-20 03:00:01 jackkiexu