C veya C++ 'da kullanmak üzere iki fonksiyon olacak.fonksiyonların biri üçle çarpacak diğeri ikiye bölecek.threadların yardımıyla ana fonksiyondaki toplam değerinin üzerine toplanacak.Peki bu nasıl olacak. Teşekkürler

soruldu: 15 May '14, 10:19

fatih3455's gravatar image

fatih3455
3171013
cevap kabul oranı: 0%

Soru sormadan önce birşeyler deneyin, eğer denediyseniz ne denediğinizi de paylaşarak soru sorarsanız daha iyi olur.

(16 May '14, 00:19) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Haklısınız.Şöyle birşey denedim.threadlar ayrı ayrı üçle çarpacaklar.4 fonksiyonda birisi toplama biri çarpma biri çıkarma biri bölme yapacak.Sonuclar her seferinde random çıkıyor.

#include <stdio.h>
#include <stdlib.h>
#include <semaphore.h>
void *fonk1(void *);
void *fonk2(void *);

sem_t sem;

int main()
{

sem_init(&sem,0,0);
int sayi1 = 10  , sayi2 = 20 ;
pthread_t td1 , td2;

pthread_create(&td1,NULL, fonk1,(void *)&sayi1);
pthread_create(&td2,NULL,fonk2,(void *)&sayi2);

void *a;
void *b;

pthread_join(td1,&a);
pthread_join(td2,&b);

printf("toplam : %d \\n", (*(int *)a) + (*(int *)b) );
printf("carpim : %d \\n", (*(int *)a) * (*(int *)b) );
printf("fark   : %d \\n", (*(int *)a) - (*(int *)b) );
printf("bol    : %d \\n", (*(int *)a) / (*(int *)b) );
sem_post(&sem);
sem_destroy(&sem);

exit(0);

}

void *fonk1(void *x)
{
int *a ;
a = (int *)x;
*a = *a*3;
sem_post(&sem);
pthread_exit((void *)&a);
}

void *fonk2(void *y)
{
int *yy ;
sem_wait(&sem);
yy=(int *)y;
*yy = *yy*3;
sem_post(&sem);
pthread_exit((void *)&yy);
}
permanent link

cevaplandı: 16 May '14, 02:35

fatih3455's gravatar image

fatih3455
3171013
cevap kabul oranı: 0%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×45
×42
×31

Soruldu: 15 May '14, 10:19

Görüntüleme: 849 kez

Son güncelleme: 16 May '14, 02:35

powered by BitNami OSQA