futi
27/10/2007, 11:28
Merhaba arkadaşlar. 100 tane thread oluşturucam ve her bir threadin oluşturulma süresini hesaplıcam. Ve ortalama bir değer çıkartıcam. Şu şekilde bir kod denedim fakat her bir threadin oluşturulma süresi olarak 0ms üretiyor.
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM_OF_THREADS 100
float gecensureler[100];
void *YAZ(void *threadid)
{
int *id_ptr, taskid;
id_ptr = (int *) threadid;
taskid = *id_ptr;
printf("Thread %d: %s\n", taskid, gecensureler[taskid]);
pthread_exit(NULL);
}
int main()
{
int rc,i;
int *taskids[NUM_OF_THREADS];
pthread_t threads[NUM_OF_THREADS];
float gecensureler[100];
clock_t now=0;
now=clock();
for(i=0; i<NUM_OF_THREADS; i++)
{
taskids[i] = (int *) malloc(sizeof(int));
*taskids[i] = i;
clock_t now=0;
now=clock(); //simdiki zamani now, degiskenine attik
rc=pthread_create(&threads[i],NULL,YAZ,(void *)taskids[i]);
gecensureler[i]=(clock()-now);
printf("GecenSure %d => %f\n",i,gecensureler[i]);
}
float m=(clock()-now);
printf("%f mm \n",clock());
pthread_exit(NULL);
}
acaba öneriniz nedir? ne yapmak lazım?
(bu ödevi process ile thread oluşturmadaki geçen süre arasındaki farkı bulmak için yapıoruz.)
tşkler
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM_OF_THREADS 100
float gecensureler[100];
void *YAZ(void *threadid)
{
int *id_ptr, taskid;
id_ptr = (int *) threadid;
taskid = *id_ptr;
printf("Thread %d: %s\n", taskid, gecensureler[taskid]);
pthread_exit(NULL);
}
int main()
{
int rc,i;
int *taskids[NUM_OF_THREADS];
pthread_t threads[NUM_OF_THREADS];
float gecensureler[100];
clock_t now=0;
now=clock();
for(i=0; i<NUM_OF_THREADS; i++)
{
taskids[i] = (int *) malloc(sizeof(int));
*taskids[i] = i;
clock_t now=0;
now=clock(); //simdiki zamani now, degiskenine attik
rc=pthread_create(&threads[i],NULL,YAZ,(void *)taskids[i]);
gecensureler[i]=(clock()-now);
printf("GecenSure %d => %f\n",i,gecensureler[i]);
}
float m=(clock()-now);
printf("%f mm \n",clock());
pthread_exit(NULL);
}
acaba öneriniz nedir? ne yapmak lazım?
(bu ödevi process ile thread oluşturmadaki geçen süre arasındaki farkı bulmak için yapıoruz.)
tşkler