线程独有:栈,寄存器,信号屏蔽字等等,所以每个线程都有自己的栈区,但是堆区是公用的
1.用户级线程通过线程库实现,所有的线程管理工作都由应用程序负责的,但是用户级线程在用户态下即可完成切换,无需操作系统的干预。但是内核级线程的管理工作都是由操作系统内核完成的所以内核级线程的切换必然需要在核心状态下才能完成。
进程是资源分配的基本单位,但是线程是调度的基本单位
线程没有自己独立的地址空间,都是共享进程的
线程包含cpu现场,但是仅仅是进程中的一个执行流,执行的是程序中的一部分,多个进程保证了线程的运行
1.linux中进程比线程安全的原因是进程有自己独立的地址空间,有自己独立的数据,具有独立性,a选项实在是过于片面
进程-资源分配的最小单位,线程-程序执行的最小单位
多线程共享了大部分资源,所以这些资源在其他线程中不需要重新创建,所以在消耗上是远远低于进程的
多线程是没有内存隔离的,单个线程崩溃就会导致整个进程彻底崩溃