嵌入式每日学习心得 线程

线程(thread)进程中的一条执行路径


线程属于进程,一个进程中可以有多个线程,必须至少有一个线程
(即主线程,主函数是由主线程执行的)


TID
一个进程中的所有线程共享该进程的所有资源(PID,私有地址空间)
所以线程中的通信很简单


进程没有执行能力,进程是操作系统分配资源的基本单位


每个线程都有且只有一个函数线程,线程创建成功会自动调用自己的
线程函数,线程函数执行完返回,该线程也就结束了(主函数可以看
作主线程的线程函数)


*线程和进程的区别
1进程是操作系统分配资源的基本单元,线程是操作系统分配时间片的
基本单元


2进程中通信频繁,但一个进程中的不同线程的通信很简单


3线程属于进程,一个进程会有多个线程,一个线程只能属于某一个进程


不要创建太多线程,因为系统中线程太多会严重影响系统系能,因为系
统会忙于线程调度,并保存每个线程的现场信息(即当前运行状态和位
置等),会消耗大量cpu


创建线程:pthread_create
等待线程/释放线程:pthread_join(pthread_detach标记为孤儿,单身狗。
系统自动释放)


区别
1.主线程由操作系统亲自创建,而普通线程是由主进程直接或间接创建的
2.主线程只能有一个,普通线程可以有多个
2.主线程结束,其他普通线程会同时结束


线程结束方案:自杀,他杀(不建议),使用全局变量


多线程同步机制
1互斥量(mutex)
2信号量(semaphore)一个特殊的整形变量,如果信号量当前值为0,p操
作会阻塞当前线程的执行


作业
1实现多线程文件拷贝

你可能感兴趣的:(嵌入式每日学习心得 线程)