tests avec join et mutex
This commit is contained in:
27
srcs/main.c
27
srcs/main.c
@@ -6,37 +6,18 @@ void *philo_exec(void *arg)
|
|||||||
|
|
||||||
philo = (t_philo*)arg;
|
philo = (t_philo*)arg;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
|
||||||
write(1, philo->str, ft_strlen(philo->str));
|
write(1, philo->str, ft_strlen(philo->str));
|
||||||
write(1, " nb ", 4);
|
|
||||||
ft_putnbr_fd(philo->nbr, 1);
|
|
||||||
write(1, "\n", 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
pthread_t *tid;
|
pthread_t id;
|
||||||
int ret;
|
|
||||||
int n_philo;
|
|
||||||
int i;
|
|
||||||
t_philo *philo;
|
t_philo *philo;
|
||||||
|
|
||||||
n_philo = 3;
|
philo = malloc(sizeof(philo));
|
||||||
philo = malloc(sizeof(philo) * n_philo);
|
philo->str = "i'm philosopher\n";
|
||||||
tid = malloc(sizeof(pthread_t) * n_philo);
|
pthread_create(&id, NULL, &philo_exec, philo);
|
||||||
i = 0;
|
|
||||||
while (i < n_philo)
|
|
||||||
{
|
|
||||||
philo[i].str = "i'm philosopher";
|
|
||||||
philo[i].nbr = i;
|
|
||||||
ret = pthread_create(&tid[i], NULL, &philo_exec, &philo[i]);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
if (ret == 0)
|
|
||||||
{
|
|
||||||
while (1)
|
while (1)
|
||||||
write(1, "main function\n", 14);
|
write(1, "main function\n", 14);
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
25
srcs/main1_join.c
Normal file
25
srcs/main1_join.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#include "philo.h"
|
||||||
|
|
||||||
|
void *philo_exec(void *arg)
|
||||||
|
{
|
||||||
|
t_philo *philo;
|
||||||
|
|
||||||
|
philo = (t_philo*)arg;
|
||||||
|
while (1)
|
||||||
|
write(1, philo->str, ft_strlen(philo->str));
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
pthread_t id;
|
||||||
|
t_philo *philo;
|
||||||
|
|
||||||
|
philo = malloc(sizeof(philo));
|
||||||
|
philo->str = "i'm philosopher\n";
|
||||||
|
pthread_create(&id, NULL, &philo_exec, philo);
|
||||||
|
pthread_join(id, NULL);
|
||||||
|
while (1)
|
||||||
|
write(1, "main function\n", 14);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
43
srcs/main2_multithread.c
Normal file
43
srcs/main2_multithread.c
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#include "philo.h"
|
||||||
|
|
||||||
|
void *philo_exec(void *arg)
|
||||||
|
{
|
||||||
|
t_philo *philo;
|
||||||
|
|
||||||
|
philo = (t_philo*)arg;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
write(1, philo->str, ft_strlen(philo->str));
|
||||||
|
write(1, " nb ", 4);
|
||||||
|
ft_putnbr_fd(philo->nbr, 1);
|
||||||
|
write(1, "\n", 1);
|
||||||
|
sleep (1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
pthread_t *tid;
|
||||||
|
int n_philo;
|
||||||
|
int i;
|
||||||
|
t_philo *philo;
|
||||||
|
|
||||||
|
n_philo = 3;
|
||||||
|
philo = malloc(sizeof(philo) * n_philo);
|
||||||
|
tid = malloc(sizeof(pthread_t) * n_philo);
|
||||||
|
i = 0;
|
||||||
|
while (i < n_philo)
|
||||||
|
{
|
||||||
|
philo[i].str = "i'm philosopher";
|
||||||
|
philo[i].nbr = i;
|
||||||
|
pthread_create(&tid[i], NULL, &philo_exec, &philo[i]);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
write(1, "main function\n", 14);
|
||||||
|
sleep (1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
48
srcs/main3_mutex.c
Normal file
48
srcs/main3_mutex.c
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#include "philo.h"
|
||||||
|
|
||||||
|
pthread_mutex_t mutex;
|
||||||
|
|
||||||
|
void *philo_exec(void *arg)
|
||||||
|
{
|
||||||
|
t_philo *philo;
|
||||||
|
|
||||||
|
pthread_mutex_lock(&mutex);
|
||||||
|
philo = (t_philo*)arg;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
write(1, philo->str, ft_strlen(philo->str));
|
||||||
|
write(1, " nb ", 4);
|
||||||
|
ft_putnbr_fd(philo->nbr, 1);
|
||||||
|
write(1, "\n", 1);
|
||||||
|
sleep (1);
|
||||||
|
}
|
||||||
|
pthread_mutex_unlock(&mutex);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
pthread_t *tid;
|
||||||
|
int n_philo;
|
||||||
|
int i;
|
||||||
|
t_philo *philo;
|
||||||
|
|
||||||
|
n_philo = 3;
|
||||||
|
philo = malloc(sizeof(philo) * n_philo);
|
||||||
|
tid = malloc(sizeof(pthread_t) * n_philo);
|
||||||
|
i = 0;
|
||||||
|
pthread_mutex_init(&mutex, NULL);
|
||||||
|
while (i < n_philo)
|
||||||
|
{
|
||||||
|
philo[i].str = "i'm philosopher";
|
||||||
|
philo[i].nbr = i;
|
||||||
|
pthread_create(&tid[i], NULL, &philo_exec, &philo[i]);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
write(1, "main function\n", 14);
|
||||||
|
sleep (1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user