进程
程序的⼀个执行实例。分配系统资源(CPU时间,内存)的实体。
线程
一个进程内部的控制序列。
区别
1、进程是资源竞争的基本单位;线程是调度的基本单位。
2、进程是资源管理的最小单位;线程是程序执行的最小单位
3、一个进程可以由多个线程组成,至少有一个执行线程;线程与同属一个进程的其他的线程共享进程所拥有的全部资源(例如:文件描述符表、当前工作目录、用户id和组id等)。
1 #include<stdio.h>
2 #include<unistd.h>
3 #include<string.h>
4 #include<pthread.h>
5 #include<stdlib.h>
6
7 void *ThreadEntry(void *arg){
8 int i;
9 for(;;){
10 printf("I am thread\n");
11 sleep(1);
12 }
13 }
14
15 int main()
16 {
17 pthread_t tid1,tid2;
18 int ret1 =pthread_create(&tid1,NULL,ThreadEntry,NULL);
19 if(ret1 != 0)
20 {
21 fprintf(stderr,"pthread_create1:%s\n",strerror(ret1));1
22 exit(EXIT_FAILURE);
23 }
24
25 int ret2 =pthread_create(&tid2,NULL,ThreadEntry,NULL);
26 if(ret2 != 0)
27 {
28 fprintf(stderr,"pthread_create2:%s\n",strerror(ret2));
29 exit(EXIT_FAILURE);
30 }
31 int i;
32 for(;;){
33 printf("I am main thread\n");
34 sleep(1);
35 }
36 return 0;
37 }