GO语言(七)多核并行化的问题
package main
import "fmt"
type Vector []float64
func (v Vector) DoSome(i,n int, u Vector, c chan float64) {
var sum float64
for ; i<n; i++ {
sum += u[i]
}
c <- sum
}
const NCPU =
func (v *Vector) DoAll(u Vector) {
c := make(chan float64, NCPU) //根据自己电脑的CPU产生对应个数的管道
for i:=; i<NCPU; i++ {
go v.DoSome(i*len(u)/NCPU, (i+)*len(u)/NCPU, u, c)
}
var sum float64 = 0.00
for i:=; i<NCPU; i++ {
sum += <-c
}
fmt.Println(sum)
}
func main() {
var v Vector
u := []float64{1.00, 2.00, 3.00, 4.00, 5.00, 6.00}
v.DoAll(u)
}
GO语言(七)多核并行化的问题的更多相关文章
- go:多核并行化问题
分别用串行和并行实现了一个NUM次加法的程序,代码如下: package main import ( "fmt" //"runtime" //执行并行段时需要引 ...
- [PLC]ST语言七:MOV_SMOV_CML_BMOV_FMOV_XCH_BCD_BIN
一:MOV/SMOV/CML/BMOV/FMOV/XCH/BCD/BIN 说明:简单的顺控指令不做其他说明. (MOV)控制要求:无 (MOV)编程梯形图: (MOV)结构化编程ST语言: (*传送指 ...
- iOS开发-OC语言 (七)继承、多态、类别
继承.多态.类别 学习目标 1.继承的含义 2.父类子类的别称 3.字段和消息的继承 4.重写和重写消息的调用 5.多态 6.类别(Category) ======================== ...
- ASP.NET MVC下使用AngularJs语言(七):Cookie的使用
网站开发,使用Cookie对暂存数据进行读写,可以使用C#,javascript,jQuery,也可以使用angularjs等等来读写...... 本篇实现angularjs环境之下对Cookie时行 ...
- python语言(七)面向对象、异常处理
一.异常处理 python解释器检测到错误,触发异常(也允许程序员自己触发异常).程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关).如果捕捉成功则进入另外一个处理分 ...
- go语言入门
Go语言最主要的特性: 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 1.2.4 错误处理Go语言引入了3个关键字用 ...
- Go语言编程 (许式伟 等 著)
第1章 初识Go语言 1.1 语言简史 1.2 语言特性 1.2.1 自动垃圾回收 1.2.2 更丰富的内置类型 1.2.3 函数多返回值 1.2.4 错误处理 1.2.5 匿名函数和闭包 1.2.6 ...
- Go语言并发编程总结
转自:http://blog.csdn.net/yue7603835/article/details/44309409 Golang :不要通过共享内存来通信,而应该通过通信来共享内存.这句风靡在Go ...
- 09. Go 语言并发
Go 语言并发 并发指在同一时间内可以执行多个任务.并发编程含义比较广泛,包含多线程编程.多进程编程及分布式程序等.本章讲解的并发含义属于多线程编程. Go 语言通过编译器运行时(runtime),从 ...
随机推荐
- Express4.10.2开发框架中默认app.js的代码注释
//通过require()加载了express.path等模块var express = require('express');var path = require('path');var favic ...
- Unity游戏接入Steam成就
在接入Steam成就,其实有些地方是有坑点的,而且steam官网给的是c++代码的接入教程.如果是老鸟的话,接入还并不是很难. 但是对于新手其实还是比较痛苦的,网上这方面的资料很少.这里我给总结下,u ...
- 我Java学习时的模样(三)
读Java源码 平常使用Java的时候,那些集合类使用起来很顺手,但是有没有想过这些集合内部的实现原理是怎样的,它的添加移除都有哪些操作? 有了一些工作经验之后,必须要读一读Java包中的源码,需要知 ...
- ASP.NET Core项目中新增和删除的内容
最新一版的.NET几经改名,最终得到了.NET Core这个高大上的名称,相应的ASP.NET MVC也跟着提供了ASP.NET Core MVC版本. 在.NET Core没有稳定名称时,叫做MVC ...
- Delphi下OpenGL2d绘图(02)-画点
一.前言 图形的绘制可以使用glBegin().glEnd()之间完成,绘制的框架代码可以使用 Delphi下OpenGL2d绘图(01)-初始化 中的代码.修改的部份为 Draw 函数的内容. 二. ...
- web渗透笔记
1.安装nmap记录:(1)下载:wget http://nmap.org/dist/nmap-6.46.tar.bz2(最新版)wget http://nmap.org/dist/nmap-6.00 ...
- 测试域名ping延迟脚本
#!/bin/bash if [ $# -lt 1 ]thenecho "Usage:avg file1"exit 1fiecho "================== ...
- Linux文件夹和文件创建删除命令
Linux删除文件夹命令 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可.直接rm就可以了,不过要加两个参数-rf 即:rm ...
- PL/SQL之流控制语句
1.选择控制语句 --语法1--IF 条件 THEN 语句; END IF; DECLARE v_Salary ,); BEGIN SELECT salary INTO v_Salary FROM a ...
- SSM+PageHelper+jqGrid实现数据分页
前言 前几天自己写了一个分页功能,代码逻辑写的很乱今天发现jqGrid这个工具是真好用,故记录下来方便以后使用首先是PageHelper后台分页工具PageHelper的原理是基于拦截器实现的 具体流 ...