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

#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. javascript中defer的作用

    javascript中defer的作用 <script src="../CGI-bin/delscript.js" defer></script>中的def ...

  2. Cloudera Manger CDH 安装文档

    简介: Cloudera Manager 是 Cloudera 公司推出的 Hadoop 集群管理工具,通过该管理工具可以方便的部署.配置.监控集群. Cloudera 公司自己发布的 Hadoop ...

  3. sdm 使用阿里云域名申请 Let’s Encrypt 通配符 域名证书

    安装acme 进入 套件中心 点击安装 Git Server 之后进入SSh会使用git命令 方法1--------------------------------------- 获取代码 git c ...

  4. MonoBehaviour.OnValidate

    [MonoBehaviour.OnValidate] This function is called when the script is loaded or a value is changed i ...

  5. 31-字符串转为 url 格式的两种不同情况

    将此字符串转为 url 格式的: # 如果是转化对象用:data=urllib.parse.urlencode(values) # 如果是转化字符串:s=urllib.parse.quote(s)

  6. post传参

    1.form表单 2.数据流

  7. log日志查看

    (1)类型1: TcLogCls::add_log($data, __METHOD__ . '::订单号:' . $order_no, 'tc_order'); (2)类型2:

  8. .net分布在指定文件夹的web.confgi或者app.config

    .Net里面,ConfigurationManager默认读取的是Web.config或者App.config但是,什么都放在这两个文件里面,感觉太多了,也不好管理配置.于是参考了下别人的资料,自己写 ...

  9. Quartz2D Text

    [Quartz2D Text] Quartz 2D provides a limited, low-level interface for drawing text encoded in the Ma ...

  10. HAService 刨坑

    High availability is a characteristic of a system, which describes the duration (length of time) for ...