1.#include<stdio.h> 2.#include<stdlib.h> 3.#include<pthread.h> 4.#include<unistd.h> 5.int a,b; 6. 7.void thread_fun1(void *arg) 8.{ 9. int sum; 10. sum=a+b; 11. printf("add:%d\n",sum); 12. sleep(1); 13.} 14. 15.void thread_fun2(void *arg) 16.{ 17. int sub; 18. sub=a-b; 19. printf("sub:%d\n",sub); 20. sleep(1); 21.} 22. 23.int main() 24.{ 25. pthread_t id1,id2; 26. int err; 27. scanf("%d%d",&a,&b); 28. err=pthread_create(&id1,NULL,(void *)thread_fun1,NULL); 29. if(err) 30. { 31. printf("create pthread error!\n"); 32. return 1; 33. } 34. err=pthread_create(&id2,NULL,(void *)thread_fun2,NULL); 35. if(err) 36. { 37. printf("create pthread error!\n"); 38. return 1; 39. } 40. pthread_join(id1,NULL); 41. pthread_join(id2,NULL); 42. exit(0); 43.}
时间: 2024-04-18 21:31:19 浏览: 86
这段代码是一个简单的多线程程序,用C语言编写。代码的功能是接受用户输入的两个整数a和b,然后创建两个线程,分别计算a+b和a-b的结果,并在屏幕上打印出来。
在主函数main中,首先定义了两个pthread_t类型的变量id1和id2,用于存储线程的ID。然后通过scanf函数接受用户输入的两个整数a和b。
接下来,使用pthread_create函数创建两个线程,分别调用thread_fun1和thread_fun2函数。这两个函数分别计算a+b和a-b的结果,并使用printf函数打印出来。在计算结果之后,使用sleep函数暂停1秒钟,以模拟线程执行的时间。
接着使用pthread_join函数等待线程id1和id2的结束。最后调用exit函数退出程序。
请注意,这段代码只是一个简单的示例,没有进行错误处理和线程同步。在实际应用中,可能需要添加适当的错误处理和同步机制来保证程序的正确性和稳定性。
相关问题
#include <stdio.h> #include <stdlib.h> #include <memory.h> #include <pthread.h> #include <errno.h> #
这是一些 C 语言的头文件,包含了一些常用的函数和类型定义。具体来说:
- `stdio.h`:提供了输入输出操作相关的函数,如 `printf`、`scanf` 等。
- `stdlib.h`:提供了一些通用工具函数,如动态内存分配函数 `malloc`、随机数生成函数 `rand` 等。
- `memory.h`:提供了一些内存操作函数,如 `memcpy`、`memset` 等。
- `pthread.h`:提供了多线程相关的函数和类型定义,如线程创建函数 `pthread_create`、互斥锁类型 `pthread_mutex_t` 等。
- `errno.h`:提供了错误码和错误信息的定义,用于表示函数调用出错的原因。
以上是这些头文件的主要作用,它们在 C 语言中被广泛使用。如果您有其他问题或者需要更详细的解释,请告诉我。
#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <pthread.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <ctype.h> #include <sys/pps.h> #include <sys/types.h> #include "camera.h" #include <encoder.h> #include "ppsFunc.h" #include "timeDiff.h"
这是一段C语言的代码,使用了一些系统库和自定义头文件。其中包括了网络编程相关的库,如sys/socket.h和netinet/in.h,以及多线程相关的库pthread.h。另外还有一些自定义的头文件,如camera.h和encoder.h,可能是该程序所需的一些外部依赖。该程序可能是一个视频流的采集和编码程序,同时还使用了PPS和时间差等功能。
阅读全文