为什么使用线程
1.fork创建进程执行任务,代价很高
2.多个进程之间不会直接内存共享
3.线程是进程的基本执行单元,进程的所有任务都在线程中国执行,进程至少有一个线程,这个线程被称为主线程或UI线程
线程是什么
线程,是进程内部的一个控制序列
一个进程相当于一个家庭,创建进程相当于拷贝家庭,内容完全一样
而线程相当于家庭成员,共享同一进程下的资源(局部变量除外)
注:单核处理上只能运行一个线程里
优缺点
优点:开销小
缺点: 1.多线程编程,调试困难
2.容易发生错误
3.把一个任务分成两个线程执行,在单处理器上不一定块,除非能确定这两个部分同时执行,且运行在多处理器上
应用场合
1.让用户有感觉在同时干多件事
2.当一个程序,需要同时处理多个工作时(如输入,输出,计算)
线程的使用
pthread_create(pthread_t* thread,pthread_attr_t *attr,void* (*start_routine)(void*),void*arg);
thread: 指向新的线程描述符
attr: 用于设置新线程的属性,默认NULL
start_tountine: