线程
线程
进程是资源分配的最小单位,每个进程都是有独立的内存空间,线程是程序执行的最小单位。多个线程共享同一个内存空间。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构
总的来说就是进程有独立的地址空间,线程没有单独的地址空间,同一进程内的所有线程共享内存空间。那么线程相对于进程的优势是什么呢:
-
线程不需要额外的内存申请
-
线程共享进程内的数据,访问数据方便。而进程则需要通过通信的方式进行
进程使用
线程创建
void *mythread1(void)
{
int i;
for(i=0;i<5;i++)
{
printf("This is the first thread\n");
sleep(1);
}
}
void *mythread2(void)
{
int i;
for(i=0;i<5;i++)
{
printf("This is the second thread\n");
sleep(1);
}
}
void main(int argc,char* argv[])
{
int ret=0;
pthread_t id1,id2;
pthread_create(&id1,NULL,(void *)mythread1,NULL);
pthread_create(&id2,NULL,(void *)mythread2,NULL);
pthread_join(id1,NULL);
pthread_join(id2,NULL);
}
// gcc -o test1 test1.c -lpthread