利用pthread进行数组求和

2023-05-16

 POSIX thread 简称为pthread,Posix线程是一个POSIX标准线程。利用多线程可以提高运算速度。利用pthread进行数组求和的程序如下:

#include <stdio.h>
#include <pthread.h>

#define ARRAY_SIZE 1000
#define NUM_THREADS 10

int g_array[ARRAY_SIZE];
int g_index = 0;
int g_sum = 0;
pthread_mutex_t mutex1=PTHREAD_MUTEX_INITIALIZER;
void* slave (void* index)
{
	int partsum =0;
	int localindex = (int) index * ARRAY_SIZE/NUM_THREADS;
	int i;
	for(i=0; i< ARRAY_SIZE/NUM_THREADS; i++)
		partsum +=g_array[localindex+i];
	pthread_mutex_lock(&mutex1);
	g_sum += partsum;
	pthread_mutex_unlock(&mutex1);
}

int main ()
{
	int i;
	pthread_t thread[NUM_THREADS];
	pthread_mutex_init (&mutex1, NULL);
	for (i=0;i<ARRAY_SIZE;i++)
		g_array[i]=i+1;
	for (i=0;i<NUM_THREADS;i++)
	{
		if(pthread_create(&thread[i], NULL, slave, (void*)i))
			perror("Pthread Create Fails");
	}
	for (i=0;i<NUM_THREADS;i++)
	{
		if(pthread_join(thread[i], NULL))
			perror("Pthread Join Fails");
	}
	pthread_mutex_destroy(&mutex1);
	printf("The sum of 1 to %d is %d\n", ARRAY_SIZE, g_sum);
	return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用pthread进行数组求和 的相关文章

随机推荐

  • 关于嵌入式函数入口参数的了解

    我们每次在编写函数的时候 xff0c 很多时候都少不了传入参数 xff0c 也就是函数的形参 xff0c 少至一个 xff0c 多至数十个都有可能 xff0c 那么这些函数的入口参数在进入函数的时候都是在哪里存放着呢 xff1f 其实 xf
  • MarkDown基本语法学习

    标题 span class token comment 一级标题 span span class token comment 二级标题 span span class token comment 三级标题 span span class t
  • ssh免密登录远程服务器

    公钥生成 此命令 xff0c 一路向西即可生成 ssh keygen 生成的公钥文件目录一般默认在 xff1a C Users 用户名 ssh 中的 id rsa pub 文件 Windows登录 个人账户下ssh的公钥内容需要保存至远程服
  • esp8266(MQTT固件)通过at指令连接阿里云平台

    使用记录 esp8266模组固件烧录工具准备串口调试助手阿里云账户及物联网设备申请开启MQTT通信方式一 阿里云直接获取连接参数方式二 阿里云三元组计算连接参数 严重注意 实验 xff1a esp8266 连接阿里云 准备工作 xff1a
  • Python爬虫实战:抓取并保存百度云资源(附代码)

    專 欄 王雨城 xff0c Python中文社区专栏作者 博客 xff1a http www jianshu com u 88ff70818bd1 寻找并分析百度云的转存api 首先你得有一个百度云盘的账号 xff0c 然后登录 xff0c
  • UAV-5--链接飞控以及配置SITL以及ardupilot环境

    linux系统链接飞控以及配置SITL以及ardupilot环境 先更改本机host到对象的ip 再进行ssh的链接 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img meuTGFrN 1651933771950
  • python面向对象实现布谷鸟算法(CS)

    以最小化一个m维变量的目标函数min f X 为例 xff0c 描述CS算法的实现步骤 step1 定义目标函数f X xff0c xff0c 问题维数m xff0c 寄生巢规模Popsize 61 N xff0c 淘汰概率Pa xff0c
  • Linux环境下创建并运行shell脚本(.sh文件)

    1 在指定位置新建 sh文件 在Linux环境下 xff0c 通过 ls ls l ls a 命令查看当前目录下的内容 xff0c 通过 cd 命令进入想新建 sh文件的文件夹后 xff0c 通过 pwd 命令查看所在目录的地址 通过如下命
  • nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案

    由于断电 xff0c 服务器重启了 xff0c 当我再次跑实验时 xff0c 发现cuda不可用 xff0c 于是输入 nvidia smi 才发现了一个错误 xff0c 如下 xff1a NVIDIA SMI has failed bec
  • CAN ack slot应用

    需求描述 某车厂对CAN初始化完成的时间T xff0c 要求 lt 45ms 解决办法 将MCU CAN控制器切换为可收发模式的代码往前放 测试方法 1 采用CANoe监测总线报文 xff0c 测量从 总线第一次出现错误帧到总线第一次出现C
  • 如何在ubuntu18.04系统中切换python版本

    在ubuntu18 04系统中如何切换python版本呢 xff1f 本文给出详细说明 1 查看python所在目录 whereis python 2 添加python list update alternatives install us
  • 深入理解计算机系统:网络编程 上

    一直以来对计算机网络比较感兴趣 xff0c 但是无奈大学计算机网络的学习非常表面 xff0c 已经忘得差不多了 毕业后读了一些网络方面的书 xff0c 对网络知识的冰山一角有了一些感悟 随着网络方面的书越读越多 xff0c 不懂的地方也越来
  • K8s解析<2>--Service与K8s中的网络通信架构简述

    Service介绍 Service可以看作是一组提供相同服务的Pod对外的访问接口 借助Service xff0c 应用可以方便地实现服务发现和负载均衡 Service也是K8s里的最核心的资源对象之一 xff0c K8s里的每个Servi
  • ROS 多线程以及OOP编程注意项(1)

    环境配置 Ubuntu20 04ROS Noetic 问题描述 按照往常使用类中回调函数并通过CallbackQueue开启多个Queue时出现回调函数没响应的情况 代码如下 namespace KINE class kine privat
  • 百度 2014 校园招聘 软件研发工程师 笔试题(天津站)

    2013 9 28笔试 xff08 此为回忆版 xff09 一 简答题 xff08 30分 xff09 1 动态链接和静态链接的优缺点 xff08 10分 xff09 2 轮询任务调度和抢占式任务调度的区别 xff08 10分 xff09
  • 【免费送书】说说哪本书曾经让你爱不释手

    编程狗在线 自由的编程学习平台 一本好书带给人的不止于知识收获 xff0c 还会对你的成长有所帮助 xff0c 与你的每次经历产生共鸣 每天读一点 xff0c 坚持不懈 xff0c 你就能成为专业高手 如果你能每两个月读一本好的编程书 xf
  • MySQL 5.6 源码目录结构

    基于MySQL 5 6 26源码 源码目录 xff1a BUILD 构建工程的脚本 client 客户端 cmake cmd line utils 命令行工具 dbug 调试库 Docs 文档 extra 一些相对独立的次要工具 inclu
  • 计算机I/O原理

    cpu通过IO命令控制设备 xff0c cpu对设备的控制仅仅可以到达设备控制器 xff0c 无法直接控制设备 设备无法直接和cpu通信 xff0c 设备控制器通过中断机制向cpu反馈信息 即这个一个模型 CPU IO指令 gt 设备控制器
  • 计算机的I/O端口地址表

    PC的I O端口地址表 xff08 I O端口地址表 xff09 http tieba baidu com f kz 61 16042340 I O端口地址表 PC只用了10位地址线 A0 A9 进行译码 xff0c 其寻址的范围为0H 3
  • 利用pthread进行数组求和

    POSIX thread 简称为pthread xff0c Posix线程是一个 POSIX 标准线程 利用多线程可以提高运算速度 利用pthread进行数组求和的程序如下 xff1a include lt stdio h gt inclu