`

golang 小程序两例

阅读更多
都是golang的小例子 因为不能高亮的原因就选择了code=c
package main

import(
        "fmt"
        "time"
        "strconv"
)

var c chan int

func ready(w string, sec int) {
        time.Sleep(int64(sec) * 1e9)
        fmt.Println(w,"is ready!")
        c <- 1
}

func main() {
        c = make(chan int)
        for k := 0; k < 10; k ++ {
                go ready(strconv.Itoa(k) + " thread",k)
        }
        fmt.Println("I'm watiting, but not too long")
        var i int
        L: for {
                select {
                        case <-c:
                                i ++
                                if i > 9 {
                                        break L
                                }
                }
        }
}


package main

import (
        "fmt"
)

func main() {
        ch := make(chan int)
        quit := make(chan bool)
        go shower(ch, quit)

        for i := 0; i < 10; i++ {
                ch <- i
        }
        quit <- false
}

func shower(c chan int, quit chan bool) {
        for {
                select {
                        case j := <-c:
                                fmt.Printf("%d\n", j)
                        case <- quit:
                                break
                }
        }
}



    func toString(any interface {} ) string {  
            switch any.(type) {  
                    case string:  
                            return any.(string)  
                    case int:  
                            return strconv.Itoa(any.(int))  
                    case bool:  
                            return strconv.Btoa(any.(bool))  
                    default:  
                            panic("the type "+reflect.TypeOf(any).String()+" is not support ")  
            }     
            return ""  
    }  



func main() {
        cmd := exec.Command("ps","-e","-opid,ppid,comm")
        output ,_ := cmd.Output()
        child := make(map[int]*vector.IntVector)
        for i, line := range strings.Split(string(output), "\n") {
                if i == 0 || len(line) == 0 { 
                        continue
                }   
                field := strings.Fields(line) 
                p, _ := strconv.Atoi(field[0])
                pp, _ := strconv.Atoi(field[1])
                if  child[pp] == nil {
                        child[pp] = new (vector.IntVector)
                }   
                child[pp].Push(p)
        }   
        sortpp := make([]int,len(child))
        i := 0
        for k, _ := range child {
                sortpp[i] = k 
                i ++
        }   
        sort.Ints(sortpp)
        for _, pp := range sortpp {
                length := child[pp].Len()
                fmt.Printf("Pid %d has %d child", pp, length)
                if length == 1 { 
                        fmt.Printf(": %v\n", []int(*child[pp]))
                } else {
                        fmt.Printf("ren: %v\n", []int(*child[pp]))
                }   
        }   
}


package main

import(
	"time"
)

func main() {
	var c1 = make(chan int)
	var c2 = make(chan int)
	go func() {
	time.Sleep(3e9)
		c1 <- 1
//		c2 <- 2
	}()

	select {
	case <-c1:
		println("read from chan c1")
	case <-c2:
		println("read from chan c2")
//	default:
//		println("defalut")
        }
	println("select over")
}


output:
read from chan c1
select over
分享到:
评论

相关推荐

    golang微信小程序

    标题中的“golang微信小程序”指的是使用Go语言(Golang)开发的微信小程序应用。Go语言,由Google公司设计,以其高效、简洁和并发性著称,被广泛应用于后端服务开发、网络编程以及高性能计算等领域。将Go语言应用于...

    golang开发的gui桌面小程序-源码

    自己使用golang开发的gui桌面小程序,界面比较简陋。 功能包含多tab页 base64的加密解密 生成uuid 简单实现了http的各种请求与响应支持 get、post、put、delete 压缩包包含源码 和编译好的 exe文件

    微信小程序服务端 SDK (for Golang)-weapp.zip

    微信小程序服务端SDK(for Golang)是专为Golang开发者设计的一个工具包,用于方便地与微信小程序进行交互和数据通信。这个SDK允许开发者在服务端实现与小程序的无缝对接,提供高效、稳定的服务支持。本文将详细介绍...

    golang调试程序gdb

    golang调试程序gdb,这里直接是gdb,跳过minGw下载安装配置操作,可以直接使用。

    Go-go-selfupdate-使Golang应用程序能够自我更新

    "Go-go-selfupdate"正是这样一个针对Golang应用的自我更新工具,它允许开发者轻松地集成到自己的程序中,使得用户可以无缝地获取并安装应用的最新版本。 一、Go-selfupdate的工作原理 Go-selfupdate通过下载服务器...

    Go-pmgo是一个采用Golang编写的Golang应用程序进程管理器

    `Go-pmgo` 是一个专为Golang应用程序设计的进程管理工具,它完全用Golang语言编写,提供了高效、稳定的进程管理和监控功能。这个工具对于那些需要在生产环境中部署和管理多个Golang服务的开发者来说,是极其宝贵的...

    Go-deployr一个简单的golang应用程序用于自动部署软件版本

    总的来说,Go-deployr是一个以Golang实现的实用部署工具,它通过SSH简化了应用程序的自动化部署,降低了运维复杂度,提升了开发团队的生产力。对于任何寻求高效部署解决方案的开发者而言,这是一个值得考虑的选择。

    Go-weixin-golang-sdk微信golang工具包

    weixin-golang-sdk 微信golang工具包

    惜时光微信小程序 后端API GoLang版.zip

    惜时光微信小程序后端API GoLang版是一款基于Go语言开发的微信小程序后台服务,用于支持微信小程序的功能实现。GoLang,即Golang,是Google推出的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言,以其...

    golang实现微信小程序商城后台系统(moshopserver)

    【golang实现微信小程序商城后台系统(moshopserver)】 本文将深入探讨如何使用Golang语言构建微信小程序的后台系统,moshopserver。Golang作为一门相对较新的编程语言,以其简洁的语法和高效的性能受到了许多...

    Golang通过小程序获取微信openid的方法示例

    本文将详细介绍如何使用Golang作为后端服务器,通过小程序获取openid的方法。 首先,理解为什么需要获取openid。在微信小程序的生态中,openid是微信为每个小程序用户分配的唯一标识,它允许开发者识别并追踪用户,...

    微信小程序开发获取用户openid go语言服务端

    微信小程序开发获取用户openid,服务端代码。前端返回json格式解析。

    Golang:通过小程序获取微信 openid

    在开发微信小程序的过程中,小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。那么这个用户身份标识就是 openid。 小程序获取 openid 的流程 那么小程序获取 ...

    golang程序测试及性能优化golang程序测试及性能优化

    golang程序测试及性能优化golang程序测试及性能优化

    茅台抢购程序golang版

    【标题】"茅台抢购程序golang版"是一款利用Golang编程语言开发的应用,专为参与茅台酒抢购设计。Golang,又称Go语言,是由Google公司开发的一种静态类型的、编译型的、并发型且具有垃圾回收功能的编程语言。它的设计...

    Golang微信小程序SDK。

    注意 :warning_selector: 新版本暂时不包含支付相关内容, 已有很多优秀的支付相关模块; 为了保证大家及时用上新功能,已发布 v2 版本,请大家使用经过线上测试 :white_heavy_check_mark: 的接口。...

    爱影家uniapp小程序源码及完整golang后台源码( 可部署)

    前端小程序采用uni-app,后台服务采用golang语言和mongoDB数据库,部署在腾讯云。 属于个人的前后端分离完整练手项目,前端小程序源码和后台源码。声明:仅限于个人学习研究,禁用于商业用途! 有域名和服务器资源可...

    golang,微信小程序,电子商务系统_高国.zip

    golang,微信小程序,电子商务系统_高国

    golang调试程序dlv.exe(delve)

    采用 go get -u github.com/go-delve/delve/cmd/dlv 编译安装,dlv是2021.4.17日最新的版本

Global site tag (gtag.js) - Google Analytics