#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <sys/time.h>
#define BUFFER_SIZE (128 * 1024 * 1024) /* 128MB */
void *mychild(void *buffer) {
struct timeval tv;
u_int64_t t1, t2;
gettimeofday(&tv, NULL);
t1 = tv.tv_sec * 1000000 + tv.tv_usec;
t2 = t1 + 6 * 1000000;
/* heavy CPU/Mem job */
srand(tv.tv_usec);
while(t1 < t2) {
memset(buffer, rand(), BUFFER_SIZE);
gettimeofday(&tv, NULL);
t1 = tv.tv_sec * 1000000 + tv.tv_usec;
}
return NULL;
}
int main(int argc, char *argv[]) {
pthread_t pthread;
void *buffer = NULL;
buffer = malloc(BUFFER_SIZE);
if (!buffer)
return 1;
sleep(4);
pthread_create(&pthread, NULL, mychild, buffer);
sleep(1);
pthread_exit(0);
}