1.进程和线程的区别
进程
- 程序的一次执行过程
- 进程就是正在执行的程序
- 进程是一个动态的过程,是有生命周期的,随着进程的创建而出现,随着进程的消亡而销毁
- 进程是分配资源的最小单位,每个进程都会拥有自己的O–3G的用户空间,但是共享3–4G的内核空间这0–3G的用户空间又被分为三个部分:栈区、堆区、静态区
- 进程在内核空间有一个task_struct表示
线程
- 多线程(LWP轻量版的进程):线程是粒度更小的处理单元
- 进程是资源分配的最小单位,线程是调度器进行调度的最小单位
- 线程共享进程的资源,多进程拥有自己独立的资源
- 线程几乎不占用资源,只占用的很小的有关执行状态的资源,大概在(8K)左右
- 线程由于共用进程的资源,所以多线程没有多进程安全,使用多线程是因为开销较小
- 在一个进程内,至少要有一个线程(主线程)
2. 7>>1==?
- 7 => 0b111
- 7>>1 == 0b011 == 3