进程和线程的区别

线程是指进程内的一个执行单元,也是进程内的可调度实体.
与进程的区别:
(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;
(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
(3)线程是处理器调度的基本单位,但进程不是.
4)二者均可并发执行.

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:

简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

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

 

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

 

进程是操作系统资源分配的单位


线程是操作系统执行的单位!

future_path(任我行):
  在线程系统中进程也是一个线程。可以将进程理解为一个程序的第一个线程。
  这句话说得有问题!!!!
 
  只能说,在多线程系统里, 进程里至少包含一个线程!!!

  如果一个进程有n个线程,那么这n个线程共享操作系统为这个进程分配的资源,如:内存空间。 但这n个线程可以并行执行。
/-----------------------------------------------------------------/
heiqisi(绝爱生鱼片):
   关于使用进程还是用线程,那要看你的任务的具体情况。
   如果你的任务需要独立分配大量资源,而且与现有环境不需要交换太多数据,你可以产生一个独立的进程。进程的管理、操作比线程方便多了。不需要去关心太多同步与共享的问题。
   如果你的任务比较轻量级,同时却需要产生大量的任务(需要很多线程or进程),这时用线程比较好,因为产生一个线程的开销比进程要小得多!!

 

 

线程是进程的一部分。楼上的说的没错。一个进程至少包括一个主线程,
就是以main()开始的函数。进程好比一做楼房,而线程就象是房间。
一个楼房至少有一个房间,可是房间不能独立的存在,要在楼房里。
  或许说的还算明白。

 

 

"进程是操作系统资源分配的单位,线程是操作系统执行的单位。"非常好。
进程和线程没有很大可比性。只是大陆业界把它们翻译成都带"程"字罢了。个人认为,台湾翻译的就较好一些。

早期一些的操作系统的资源分配单位和执行单位是一起的,现在只不过分开了罢了。

另外,WIN32平台,线程也有一点自己的资源,那就是heap区,每个线程,都可以有自己的独立的heap区。

 

 

进程好比家庭,是社会细胞。线程好比家庭成员,注意,家庭成员可以共享筷子,碗,电视,沙发......等家庭资源。但是家庭之间一般不共享这些,因为她门使用自己的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值