说说进程和线程的区别:
进程是操作系统进行资源分配的单位。
线程是CPU任务调度的基本单元。
至于程序和进程的区别?程序是死的代码,用我老师的话来说就是相当于进程的尸体,不可被执行或调度,以文件形式存在于系统中。而进程则是活的程序,是可以被系统执行和调度的。进程的五大状态:
创建(创建进程)-> 就绪(创建完毕,等待CPU调度) -> 运行(正在占用CPU运行) -> 等待(等待IO等其他操作的结束) -> 终止(结束进程)线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈)
线程共享的东西:代码、数据、堆区
线程独有的:寄存器、栈区、程序计数器 、线程的优先级一个程序至少有一个进程,一个进程至少有一个线程.
进程同步的方法:
- 临界区
- 互斥锁
- 信号量
- 事件
进程通信的方法:
- 管道
- 共享内存
- 消息队列
- 信号量
- Socket
同步和通信的共通之处是信号量、消息(事件)
参考链接:
http://www.cnblogs.com/memewry/archive/2012/08/22/2651696.html