⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arr2sum.c

📁 这是一个很简单的在linux环境下的线程编程例子
💻 C
字号:

//创建2线程

#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <pthread.h>#include "declare.h"void *parr2sum(void *arg);extern int array[ARRAY_SIZE];int flag = 0;int arr2sum (int count_length){	int res, sum=0;				//线程函数执行的返回值	struct COUNTPOINT cp[2];	pthread_t parr1,parr2;	//线程标识符变量	int result1,result2; //线程执行的返回值	cp[0].start=0; cp[0].length = count_length/2;	res = pthread_create(&parr1,NULL,parr2sum,&cp[0]); /*创建线程*/	if (res!=0) {		perror("Create Thread failed");//创建失败		exit(EXIT_FAILURE);	} 	cp[1].start=cp[0].length; cp[1].length = count_length-cp[0].length;	res = pthread_create(&parr2,NULL,parr2sum,&cp[1]); /*创建线程*/	if (res!=0) {		perror("Create Thread failed");//创建失败		exit(EXIT_FAILURE);	}	res = pthread_join(parr1,(void**)&result1);     sum += result1;//归并相加	res = pthread_join(parr2,(void**)&result2);     sum += result2;	return sum;}//2线程数组数之和
void *parr2sum(void *arg) {	int i,sum=0;	int* pa;	struct COUNTPOINT cp;	cp = *(struct COUNTPOINT*)arg;	pa = array+cp.start;	for (i=0; i<cp.length; i++)	{		sum += pa[i]; //数组数之和	}	pthread_exit((void*)sum);//线程退出}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -