前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >神奇的go语言(高级应用)

神奇的go语言(高级应用)

作者头像
李海彬
发布2018-03-22 12:09:51
8380
发布2018-03-22 12:09:51
举报
文章被收录于专栏:Golang语言社区Golang语言社区

其实有了上一篇的基本语法,我们就可以做一些简单的事情,比如说文件服务器。或许大家有点不相信,没关系。下面开始用代码来说明问题,其实整个代码的内容不会超过十行。

代码语言:javascript
复制
package main  
 
import "net/http" 
 
func main() {  
 
        h := http.FileServer(http.Dir("/home"))  
        http.ListenAndServe(":8888", h)  
 
}  

有了上面的代码,直接输入go run share.go。说了这么多,大家可以继续看go语言下的高级应用是怎么使用的。

(1)并发运行

代码语言:javascript
复制
package main  
 
import "fmt" 
import "time" 
 
func show() {  
 
 for {  
                fmt.Print("child ");  
                time.Sleep(10000)  
        }  
}  
 
func main() {  
 
 
        go show()  
 
 for {  
                fmt.Print("parent ")  
                time.Sleep(10000)  
        }  
}  

(2)channel通信

代码语言:javascript
复制
package main  
 
import "fmt" 
 
func show(c chan int) {  
 
 for {  
 
                data := <- c  
 
 if 1 == data {  
 
                        fmt.Print("receive ")  
                }  
 
        }  
}  
 
func main() {  
 
        c := make(chan int)  
 
        go show(c)  
 
 for {  
 
                c <- 1  
                fmt.Print("send ")  
        }  
}  

 (3) 多channel访问
[cpp] view plain copy
package main  
 
import "fmt" 
import "time" 
 
func fibonacci(c, quit chan int) {  
 
        x, y := 1, 1  
 
 for {  
                select {  
 
 case c <- x:  
                                x, y = y, x+y  
 
 case <- quit:  
                                fmt.Println("quit")  
 return 
 
                }  
        }  
}  
 
func show(c, quit chan int) {  
 
 for i := 0; i < 10; i ++ {  
 
                fmt.Println(<- c)  
        }  
 
        quit <- 0  
 
}  
 
func main() {  
 
        data := make(chan int)  
        leave := make(chan int)  
 
        go show(data, leave)  
        go fibonacci(data, leave)  
 
 for {  
 
                time.Sleep(100)  
        }  
 
}  
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档