线程知识整理(一)

线程与进程的关系及区别
定义:
      进程Process是具有一定独立功能的程序关于某个数据集合的一次运行活动, 是系统进行资源分配和调度的一个独立单位.
      线程Thread是进程的一个执行实体, 是CPU调度和分派的基本单位, 是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点运行中必不可少的资源(如程序计数器,一组寄存器,栈),它可与同属一个进程的其他线程共享进程所拥有的全部资源.
关系:
      线程从属于进程;一个线程可以创建和撤销其他线程;同一个进程中的多个线程可以并发执行.

区别:
1.线程是进程的一部分, 所以线程有时被称为轻量级进程.
2.一个程序至少有一个进程,一个进程中至少有一个线程.
3.系统在运行的时候会为每个进程分配不同的内存区域,但不会为线程分配内存(线程所使用的资源时它所属进程的资源),线程组只能共享内存.
4.线程不能独立执行,必须有进程对其进行控制.

线程间的相互制约关系:
      1.间接相互制约
      一个系统中的多个线程共享某些系统资源.当一个线程使用该资源时,其他线程都要等待,即互斥
      2.直接相互制约
      因为线程间存在合作关系,比如线程A将其计算结果提供给线程B作进一步处理,那么线程B在线程A将数据写入前将处于阻塞状态,即同步

 

常用线程同步对象:互斥量Mutex,信号量Semaphore,事件Event,原子操作,读写锁,条件变量.

常用线程互斥对象:临界区CriticalSection.

常用进程同步内核对象:互斥量Mutex,信号量Semaphore,事件Event.

 

posted @ 2015-11-24 14:25  715776681  阅读(194)  评论(0编辑  收藏  举报