• go语言之goroutine


    package main
    
    import "fmt"
    
    /**values [] chan 整型*/
    func sum(values []int, resultChan chan int) {
    	sum := 0
    	//循环数组求和
    	for _, value := range values {
    		sum += value
    	}
    	resultChan <- sum //将计算结果发送到channel中
    }
    
    //函数调用前使用关键字go,我们即可让该函数以goroutine方式执行。goroutine是一种 比线程更加轻盈、更省资源的协程
    func main() {
    	values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    	//切片是一种动态长度的数组 可以使用make创建 make([]T, length, capacity) 参数分别为 类型(数组 ,map,chan) 长度 最大长度
    	resultChan := make(chan int, 2)
    
    	//默认 startIndex 时将表示从 arr 的第一个元素开始。默认 endIndex 时将表示一直到arr的最后一个元素。
    	//s1 := s[startIndex:endIndex]
    	// 第一个go函数传入值是 数组 1-5的和 
    	//第二个go函数传入是 数组 6-10的和
    
    	go sum(values[:len(values)/2], resultChan)
    	go sum(values[len(values)/2:], resultChan)
    	//sum1 := <-resultChan
    	sum1, sum2 := <-resultChan, <-resultChan
    	fmt.Println("Result:", sum1, sum2, sum1+sum2)
    	//fmt.Println("Result:",sum1)
    }
    

      

    你不能把坏习惯扔出窗外 但你可以一步步赶下电梯
  • 相关阅读:
    python模块之sys与os
    Python模块之time、datetime
    一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
    js闭包
    js删除局部变量
    数据库 事务
    jQuery全屏滚动插件fullPage.js
    jdk环境变量
    MyEclipse优化设置(最详细版本)
    oracle查询性能优化
  • 原文地址:https://www.cnblogs.com/Ychao/p/14652848.html
Copyright © 2020-2023  润新知