• go runtime包 running


      

    • Gosched:让当前协程让出cpu以让其他协程运行,它不会挂起当前协程,因此当前协程未来会继续执行

    • NumCPU:返回当前系统的CPU核数量

    • GOMAXPROCS:设置最大的可同时使用的CPU核数

    • Goexit:退出当前goroutine(但是defer语句会照常执行)

    • NumGoroutine:返回真该执行和排队的任务总数

    • GOOS:目标操作系统

    • GOROOT:返回本机的GO路径

        1. runtime.Gosched() 让出当前cpu 时间片

    import (
        "fmt"
        "runtime"
    )
    
    func main() {
        go func(s string) {
            for i := 0; i < 2; i++ {
                fmt.Println(s)
            }
        }("world")
       
        for i := 0; i < 2; i++ {
            // 用于让出CPU时间片,让出当前goroutine的执行权限,调度器安排其它等待的任务运行,
    
            runtime.Gosched()
            fmt.Println("hello")
        }
    }

    2. runtime.Goexit() 退出当前协程

    
    
    
    package main
    
    import (
    	"fmt"
    	"runtime"
    	"time"
    )
    
    func test1() {
    	defer fmt.Println("cc")
    
    	//return //终止此函数
    	runtime.Goexit() //终止所在的协程
    	fmt.Println("ddd")
    }
    
    func main() {
    
    	//创建新建的协程
    	go func() {
    		fmt.Println("aaaaaa")
    
    		//调用了别的函数
    		test1()
    
    		fmt.Println("bbbbb")
    	}()
    
    	//防止主协程执行完毕
        time.Sleep(100*time.Second)
    }
    

      

  • 相关阅读:
    加密CMD使电脑溢出也拿不到CMD权限
    全面提升Linux服务器的安全
    ping 源码,详细解释
    伤心一百回
    聊聊我对黑客技术的思考
    一个网管员的真实成长经历
    通过命令限制上网用户的权限
    防范黑客的简单办法
    “黑客”人生
    黑客现身讲话
  • 原文地址:https://www.cnblogs.com/zxqblogrecord/p/15535640.html
Copyright © 2020-2023  润新知