多线程并行计算数据总和 —— 优化计算思想(多线程去计算)—— C语言demo
多线程计算整型数组数据总和:
#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的更多相关文章
- C#中的多线程 - 并行编程 z
原文:http://www.albahari.com/threading/part5.aspx 专题:C#中的多线程 1并行编程Permalink 在这一部分,我们讨论 Framework 4.0 加 ...
- Java多线程--并行模式与算法
Java多线程--并行模式与算法 单例模式 虽然单例模式和并行没有直接关系,但是我们经常会在多线程中使用到单例.单例的好处有: 对于频繁使用的对象可以省去new操作花费的时间: new操作的减少,随之 ...
- java8新特性(六):Stream多线程并行数据处理
转:http://blog.csdn.net/sunjin9418/article/details/53143588 将一个顺序执行的流转变成一个并发的流只要调用 parallel()方法 publi ...
- MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!
MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!2017年06月15日 19:59:44 蓝色-鸢尾 阅读数:2062版权声明:本文为博主原创文章,如需转 ...
- iOS多线程编程指南(一)关于多线程编程(转)
原文:http://www.dreamingwish.com/article/ios-multi-threaded-programming-a-multi-threaded-programming.h ...
- Python 多线程、多进程 (二)之 多线程、同步、通信
Python 多线程.多进程 (一)之 源码执行流程.GIL Python 多线程.多进程 (二)之 多线程.同步.通信 Python 多线程.多进程 (三)之 线程进程对比.多线程 一.python ...
- [转]Java多线程干货系列—(一)Java多线程基础
Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...
- R︱foreach+doParallel并行+联用迭代器优化内存+并行机器学习算法
要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 接着之前写的并行算法paralle ...
- java 中多线程和锁的使用以及获取多线程执行结果
多线程一:原生的写法 关键词 implements 实现 Runnable 类 run() 方法 注意点 : 创建类的实例 InterfaceController inter=new Int ...
随机推荐
- Redis Windows环境安装
1.下载Windows 版本 Redis: https://github.com/ServiceStack/redis-windows 2. 解压文件: F:\开源代码学习\01_Redis 打开 目 ...
- VBS 创建快捷方式
Dim Shell,DesktopPath,link Set Shell = CreateObject("WScript.Shell") DesktopPath = Shell.S ...
- 跟我学算法-match-LSTM(向唐老师看齐)
对于match-lstm,将hi文本与输出的match-lstm(由si,hi,qi)组合重新输入到LSTM网络中,以端对端的操作理念. 参考的博客:https://blog.csdn.net/lad ...
- 我的Linux之路——windows10用WMware安装CentOS7.5 虚拟机详细步骤
出自:https://www.jianshu.com/p/99f784d465f4 VMware简介: VMware是一个虚拟PC的软件,可以在现有的操纵系统上虚拟出一个新的硬件环境,相当于模拟出 ...
- Kubernetes v1.10.x HA 全手动安装教程(TL;DR)
转自 https://www.kubernetes.org.cn/3814.html 本篇延续过往手动安装方式来部署 Kubernetes v1.10.x 版本的 High Availability ...
- ubuntu17.10 安装ssh
sudo apt-get install openssh-server sudo /etc/init.d/ssh start
- errorlevel 续2
-------siwuxie095 %ERRORLEVEL%值一览表: ATTRIB.EXE (a) Target file/folder not found = ER ...
- curl传post数据流
- JSP中的一个树型结构
看方力勋的javaWeb,采用左右值来表示树型结构(就是俺门的多级分类)表结构 页面代码 <%@ page language="java" import="java ...
- chrome会话cookie显示过期时间为1969-12-31T23:59:59.000Z
cookie不设置过期时间的话,为浏览器会话cookie,关闭浏览器自动删除cookie 但是在chrome浏览器下,cookie过期时间显示为“1969-12-31T23:59:59.000Z” 在 ...