main.c 796 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <uv.h>
  4. void hare(void *arg) {
  5. int tracklen = *((int *) arg);
  6. while (tracklen) {
  7. tracklen--;
  8. sleep(1);
  9. fprintf(stderr, "Hare ran another step\n");
  10. }
  11. fprintf(stderr, "Hare done running!\n");
  12. }
  13. void tortoise(void *arg) {
  14. int tracklen = *((int *) arg);
  15. while (tracklen) {
  16. tracklen--;
  17. fprintf(stderr, "Tortoise ran another step\n");
  18. sleep(3);
  19. }
  20. fprintf(stderr, "Tortoise done running!\n");
  21. }
  22. int main() {
  23. int tracklen = 10;
  24. uv_thread_t hare_id;
  25. uv_thread_t tortoise_id;
  26. uv_thread_create(&hare_id, hare, &tracklen);
  27. uv_thread_create(&tortoise_id, tortoise, &tracklen);
  28. uv_thread_join(&hare_id);
  29. uv_thread_join(&tortoise_id);
  30. return 0;
  31. }