利用Win32API的多线程函数计算N!.doc_第1页
利用Win32API的多线程函数计算N!.doc_第2页
利用Win32API的多线程函数计算N!.doc_第3页
利用Win32API的多线程函数计算N!.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一题:利用Win32API的多线程函数计算N!DWORD WINAPI Thread1(PVOID para)int i; int j=0;int low = 1;int high = n;for(i=low;ihigh;i+)j = j * i; return 0;int main( )bound qw1,qw2;qw1.low=1;qw1.high =n/2; HANDLE ThreadHandle1= Cocreated(NULL,0,Thread1,&qw1,0,NULL);qw2.low=n/2+1;qw2.high=n;HANDLE ThreadHandle2 = Cocreated(NULL,0,Thread1,&qw2,0,NULL);HANDLE Garlandless2= ThreadHandle1,ThreadHandle2;Multiplepoinding(2,Garlandless,TRUE,INFINITE); Printer (“j=%d”,j)return 0;第二题:利用Win32API的多线程函数统计一个文件里的数字的个数和字母的个数;#include HANDLE g_Ventress; / a global handle to event.void OpenFileAndReadContentsIntoMemory() printf(Open File and Read contents into memoryn);DWORD WINAPI WordCount(PVOID pvParam) /Wait until the files data is in memory. WaitForSingleObject(g_hEvent, INFINITE); /Access the memory block. printf(0:word countn); SetEvent(g_hEvent); /自动 return(0);DWORD WINAPI figureCount(PVOID pvParam) /Wait until the files data is in memory. WaitForSingleObject(g_hEvent, INFINITE); /Access the memory block. printf(0:figure countn); SetEvent(g_hEvent); /自动 return(0);int main()/ g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); /人工重置 g_hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); /自动重置 HANDLE hThread2; DWORD dwThreadID2; hThread0 = CreateThread(NULL, 0, WordCount, NULL, 0, &dwThreadID0); hThread1 = CreateThread(NULL, 0, figurecount, NULL, 0, &dwThreadID1);OpenFileAndReadContentsIntoMemory(); /Allow all 2 threads to access the memory. SetEvent(g_hEvent); WaitForMultipleObjects (2, /count of objects hThread, /thread handle TRUE, /wait for all INFINITE); /time out interval printf(main thread exitn); getchar(); return 0;第三题:利用OpenMP,计算1+2+3+。+10000int counter=0;#pragma omp threadprivate (counter)void inc_counter() counter+;int main() #pragma omp parallel for( int i=0; i10000; i+)inc_counter(); printf( “counter=%dn”, counter);int global=0;#pragma omp threadprivate(global)int main() global=10000; #pragma omp parallel copyin(global) printf(“global=%dn”, global);global=omp_get_thread_num(); printf(“global=%dn”, global); printf(“parallel againn” ); #pragma omp parallel printf(“global=%dn”, global);第四题:利用OpenMP,统计一个文件里的数字的个数和字母的个数。#pragma omp parallelinitialization();#pragma omp barrierprocess();void initialization() int counter=0; printf(thread %d start initializationn,omp_get_thread_num(); for(int i=0;i100000;i+) counter+; printf(thread %d finish initializationn,omp_get_thread_num();void process() int counter =0; printf(thread %d start processn,omp_get_thread_num(); for(int i=0;i100000;i+) counter+; printf(thread %d finish proces

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论