Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <pthread.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- using namespace std;
- int suma;
- const int NUM_OF_THREADS = 7;
- pthread_mutex_t myMutex = PTHREAD_MUTEX_INITIALIZER;
- pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
- void* sumuj(void* arg)
- {
- pthread_mutex_lock(&myMutex);
- int* przedzial = (int*)arg;
- //cout<<przedzial[0]<<endl<<przedzial[1]<<endl<<endl;
- for(int i=przedzial[0]; i <przedzial[1]; i++)
- {
- suma = suma + i;
- }
- pthread_mutex_unlock(&myMutex);
- return arg;
- }
- void rownolegle()
- {
- pthread_t threads[NUM_OF_THREADS];
- int ids[NUM_OF_THREADS];
- int przedzial[NUM_OF_THREADS+1];
- for(int i = 0; i<NUM_OF_THREADS; i++)
- {
- przedzial[i] = i*(2012/NUM_OF_THREADS);
- }
- przedzial[NUM_OF_THREADS] = 2012;
- for(int i = 0; i<NUM_OF_THREADS; i++)
- {
- ids[i] = pthread_create(&threads[i], NULL, sumuj, (void*)&przedzial[i]);
- }
- for(int i = 0; i<NUM_OF_THREADS; i++)
- {
- ids[i] = pthread_join(threads[i], NULL);
- }
- cout<<"ROWNOLEGLE - \tsuma:\t"<<suma<<endl;
- }
- void nieRownolegle()
- {
- suma = 0;
- for(int i=0; i <2012; i++)
- {
- suma = suma + i;
- }
- cout<<"NIEROWNOLEGLE -\tsuma:\t"<<suma<<endl;
- }
- int main()
- {
- rownolegle();
- nieRownolegle();
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement