Ejemplo n.º 1
0
int main() {
	int i;
	thread_t t[N_THREADS];
	mmutex_init(&mutex);
	
	printf("munlock executado antes de iniciar escalonador retorna %d.\n",
				munlock(&mutex));
	
	printf("Main criando %d threads...\n", N_THREADS);
	for (i = 0; i < N_THREADS; i++) {
		t[i].prio = 1;
		t[i].id = mcreate(1, (void *(*)(void*)) &print_thread_mutex, &t[i]);
	}
	printf("munlock executado com mutex livre retorna %d\n", munlock(&mutex));
	printf("Main esperando as threads...\n");
	for (i = 0; i < N_THREADS; i++) {
		mwait(t[i].id);
	}
	printf("Fim da funcao main...\n");
	
	return 0;
}
Ejemplo n.º 2
0
int main ()
{
	int ids[MAX_THREADS];
	int i = 0;

	puts ("Started.");

        mmutex_init(&mutex);

	for (i=0; i < MAX_THREADS; i++)
	{
		ids[i] = mcreate(2,&makeWork, NULL);
		printf("Thread using TID %d started working...\n", ids[i]);
	}

	for (i=0; i < MAX_THREADS; i++)
	{
		mwait(ids[i]);
		printf("Thread using TID %d finished.\n", ids[i]);
	}

	exit(0);
}