雕刻时光

just do it……nothing impossible
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

线程与进程

Posted on 2014-02-21 16:50  huhuuu  阅读(226)  评论(0编辑  收藏  举报

  线程存在的意思:计算机中的设计无非是节约空间,二来节约时间。而线程的存在就是既可以节约空间也可以节约时间。当一个进程有多个线程,而计算机又有多个CPU的时候,不同的线程可以在不同的CPU中并发执行!同时,进程间通信会涉及 管道(pipe)和有名管道(FIFO),信号(signal),消息队列,共享内存,信号量,套接字(socket) 等,比较麻烦,但是线程间通信就简单多了,因为是共享内存的,所以直接访问相应的内存就可以了。 同时线程是轻量级的,线程的申请释放的资源消耗远低于进程的申请释放。

  线程同步的意义: 并发执行的目的是为了更高效得利用CPU资源,但是,并发执行也会有问题发生。比如两个线程对同一个共享的变量修改的时候,如果处理不当,可能会造成数据的修改或是读取异常!比如,办公室里就一台打印机,但是,如果有两个线程同时对打印机处理的话,打印出来的内容就会出问题了! 所以线程同步的意思就是“线程排队”,不要被字面意思误导了!

 

  "进程是操作系统资源分配的单位,线程是操作系统执行的单位。"

  进程是程序的一次执行,线程可以理解为进程中的执行的一段程序片段。在一个多任务环境中下面的概念可以帮助我们理解两者间的差别: 
   进程间是独立的,这表现在内存空间,上下文环境;线程运行在进程空间内。 
   一般来讲(不使用特殊技术)进程是无法突破进程边界存取其他进程内的存储空间;而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间。
   同一进程中的两段代码不能够同时执行,除非引入线程。 
线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。 
   线程占用的资源要少于进程所占用的资源。 
   进程和线程都可以有优先级。 
   在线程系统中进程也是一个线程。可以将进程理解为一个程序的第一个线程。