多线程计算整型数组数据总和:

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include<process.h>
#include <time.h>
#define N 1024 struct Myinfo
{
int *pstart;//开始地址
int length;//长度
int id;//线程编号
int sum;//存储数据的和
};
void add(void *p) //void *p可以保存任何类型的指针
{
struct Myinfo *pinfo = p;
for (int i = ; i < pinfo->length;i++)
{
pinfo->sum += pinfo->pstart[i];
}
printf("\n线程%d计算的结果%d", pinfo->id, pinfo->sum);
} void main()
{
time_t ts;
unsigned int num = time(&ts);//传递地址
srand(num);
int data[N] = { };
   // 进行赋值
for (int i = ; i < N; i++)
{
data[i] = rand() % ;
//printf("%4d", data[i] = rand() % 1000);
}
int sum = ;
   //计算总和
for (int i = ; i < N; i++)
{
sum += data[i];
}
printf("\n总和=%d", sum); struct Myinfo info[] = { };
for (int i = ; i < ;i++)
{
info[i].id = i;
info[i].length = N / ;
info[i].sum = ;
info[i].pstart = data + i*N / ; //注意这里地址的移动
_beginthread(add, , &info[i]);
}
system("pause"); int lastsum=;
for (int i = ; i < ;i++)
{
lastsum += info[i].sum;
}
printf("\n多线程总和=%d", lastsum);
system("pause");
}

在此也可以结合队列来使用,队列控制取到的计算点

多线程并行计算数据总和 —— 优化计算思想(多线程去计算)—— C语言demo的更多相关文章

  1. C#中的多线程 - 并行编程 z

    原文:http://www.albahari.com/threading/part5.aspx 专题:C#中的多线程 1并行编程Permalink 在这一部分,我们讨论 Framework 4.0 加 ...

  2. Java多线程--并行模式与算法

    Java多线程--并行模式与算法 单例模式 虽然单例模式和并行没有直接关系,但是我们经常会在多线程中使用到单例.单例的好处有: 对于频繁使用的对象可以省去new操作花费的时间: new操作的减少,随之 ...

  3. java8新特性(六):Stream多线程并行数据处理

    转:http://blog.csdn.net/sunjin9418/article/details/53143588 将一个顺序执行的流转变成一个并发的流只要调用 parallel()方法 publi ...

  4. MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!

    MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!2017年06月15日 19:59:44 蓝色-鸢尾 阅读数:2062版权声明:本文为博主原创文章,如需转 ...

  5. iOS多线程编程指南(一)关于多线程编程(转)

    原文:http://www.dreamingwish.com/article/ios-multi-threaded-programming-a-multi-threaded-programming.h ...

  6. Python 多线程、多进程 (二)之 多线程、同步、通信

    Python 多线程.多进程 (一)之 源码执行流程.GIL Python 多线程.多进程 (二)之 多线程.同步.通信 Python 多线程.多进程 (三)之 线程进程对比.多线程 一.python ...

  7. [转]Java多线程干货系列—(一)Java多线程基础

    Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...

  8. R︱foreach+doParallel并行+联用迭代器优化内存+并行机器学习算法

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 接着之前写的并行算法paralle ...

  9. java 中多线程和锁的使用以及获取多线程执行结果

    多线程一:原生的写法   关键词 implements  实现  Runnable 类 run()  方法 注意点 : 创建类的实例 InterfaceController inter=new Int ...

随机推荐

  1. leetcode738

    public class Solution { public int MonotoneIncreasingDigits(int N) { var num = N.ToString(); var len ...

  2. 初认识ZK

    转自:https://www.jianshu.com/p/8e322462bcca 前言: 前段时间做了sdk直播服务,由于给游戏接入,所以必须要考虑并发性能问题,大家知道直播聊天,房间人数多了的话是 ...

  3. 新手C#面向对象的学习2018.08.06

    class Person//声明一个Person类 { //类中的声明与Main中不同,类中声明的是字段而不是函数. public string gender; public string name= ...

  4. S EAI 客户主数据导入_test(detail)

    一. 客户主数据模板导出 客户主数据和新联系人导入 Account_Config.ini文件 [Public] ConnectString=host="siebel://10.10.1.15 ...

  5. IoC和DI的区别

    ------------------siwuxie095                                     IoC 和 DI 的区别         1.区别     (1)Io ...

  6. Win10 Notebook

    E:\Perl\site\bin;E:\Perl\bin;C:\Program Files\Microsoft MPI\Bin\;C:\ProgramData\Oracle\Java\javapath ...

  7. ireport related

    http://blog.csdn.net/q326527970/article/details/7049047

  8. ruby变量

    Ruby 支持五种类型的变量. 一般小写字母.下划线开头:变量(Variable).局部变量的作用域从 class.module.def 或 do 到相对应的结尾或者从左大括号到右大括号 {}. 当调 ...

  9. 使用WCF实现消息推送

    1.协议 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  10. [转]【流媒體】H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流

    [流媒體]H264—MP4格式及在MP4文件中提取H264的SPS.PPS及码流 SkySeraph Apr 1st 2012  Email:skyseraph00@163.com 一.MP4格式基本 ...