Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <pthread.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <string.h>
- int n=5;
- int a[5][5];
- int b[5][5];
- pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
- void *work(void *context) {
- int number=(long)context;
- printf("\nnumber is= %d\n",number);
- for (int i=0;i<n;i++)
- a[number][i]=a[number][i]+b[number][i];
- printf("\n");
- pthread_mutex_unlock(&mutex);
- pthread_exit(NULL);
- }
- int main(int argc, char *argv[]) {
- for (int i=0;i<n;i++)
- for (int j=0;j<n;j++){
- a[i][j]=rand()%11;
- }
- for (int i=0;i<n;i++) {
- for (int j = 0; j < n; j++) {
- printf("%d ", a[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- for (int i=0;i<n;i++)
- for (int j=0;j<n;j++){
- b[i][j]=rand()%10;
- }
- for (int i=0;i<n;i++) {
- for (int j = 0; j < n; j++) {
- printf("%d ", b[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- pthread_t th[n];
- for (size_t i = 0; i <= n; i++) {
- pthread_mutex_lock(&mutex);
- pthread_create(&th[i], NULL, work, (void*) i);
- }
- for (int i = 1; i < argc; i++) {
- pthread_join(th[i], NULL);
- }
- for (int i=0;i<n;i++) {
- for (int j = 0; j < n; j++) {
- printf("%d ", a[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement