进程和线程的主要区别是什么?

heiqisi 2002-12-21 10:19:57
进程和线程的主要区别是什么?
...全文
29857 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
erigido 2002-12-23
  • 打赏
  • 举报
回复
进程是一次资源的分配
线程是一次处理机的分配
myrmidons 2002-12-23
  • 打赏
  • 举报
回复
线程库有很多种实现方式,可以一个用户线程对应一个内核线程;可以多个用户线程对应一个内核线程;也可以多个用户线程对应多个内核线程。
linux中,使用一种简单的方式:一个用户线程,对应一个内核线程(这里你理解为一个进程)。多个内核线程可以共享同一套用户空间,(clone系统调用带VM_CLONE)标识)。
gyj8309 2002-12-22
  • 打赏
  • 举报
回复
进程是操作系统资源分配的单位,而线程是操作系统执行的单位。
线城市为了提高操作系统的并发性而引入的,而且线程的创建,销毁及调度的开销一般都远小于进程。
一个进程可以包含多个共享该进程的资源的线程,同一进程内的线程间的通信是很容易实现的。
关于进程和线程的详细讨论可以在任何一本大学的操作系统的教材上找到。
3ken666 2002-12-22
  • 打赏
  • 举报
回复
进程好比家庭,是社会细胞。线程好比家庭成员,注意,家庭成员可以共享筷子,碗,电视,沙发......等家庭资源。但是家庭之间一般不共享这些,因为她门使用自己的。
cccbuiler 2002-12-22
  • 打赏
  • 举报
回复
进程是程序分配内存的单位,
线程,又叫轻型线程,是一种比进程更小的执行单元
进程包含线程。
eduyu 2002-12-21
  • 打赏
  • 举报
回复
"进程是操作系统资源分配的单位,线程是操作系统执行的单位。"非常好。
进程和线程没有很大可比性。只是大陆业界把它们翻译成都带"程"字罢了。个人认为,台湾翻译的就较好一些。

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

另外,WIN32平台,线程也有一点自己的资源,那就是heap区,每个线程,都可以有自己的独立的heap区。
future_path 2002-12-21
  • 打赏
  • 举报
回复
进程是程序的一次执行,线程可以理解为进程中的执行的一段程序片段。在一个多任务环境中下面的概念可以帮助我们理解两者间的差别:
进程间是独立的,这表现在内存空间,上下文环境;线程运行在进程空间内。
一般来讲(不使用特殊技术)进程是无法突破进程边界存取其他进程内的存储空间;而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间。
同一进程中的两段代码不能够同时执行,除非引入线程。
线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。
线程占用的资源要少于进程所占用的资源。
进程和线程都可以有优先级。
在线程系统中进程也是一个线程。可以将进程理解为一个程序的第一个线程。
sonys 2002-12-21
  • 打赏
  • 举报
回复
我觉得线程和进程的主要区别还是在于
进程要拥有资源,而线程没有资源,它只是使用进程中的资源
good02xaut 2002-12-21
  • 打赏
  • 举报
回复
线程是进程的一部分。楼上的说的没错。一个进程至少包括一个主线程,
就是以main()开始的函数。进程好比一做楼房,而线程就象是房间。
一个楼房至少有一个房间,可是房间不能独立的存在,要在楼房里。
或许说的还算明白。
无来 2002-12-21
  • 打赏
  • 举报
回复
写程序的时候,好像是线程是进程的一部分。不知道是不是这样:)
flyingbugs 2002-12-21
  • 打赏
  • 举报
回复
进程是操作系统资源分配的单位


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

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

只能说,在多线程系统里, 进程里至少包含一个线程!!!

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

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧