线程和进程的区别

资源分配

进程:进程是系统进行资源分配的基本单位,每个进程拥有自己独立的内存空间和系统资源

线程:线程是系统进行任务调度的基本单位,线程是进程的一部分,一个进程可以包含多个线程,这些线程可以共享父线程的内存空间和资源

并发与并行

进程:多个进程可以在同一时间内并发执行,但实际上他们可能并不是真正的并发执行,而是在交替执行

线程:在多核处理器上,线程可以实现真正的并行执行,因为可能不同进程的多个线程或者是同一个进程的不同线程,他们可以同时在不同的CPU核心上运行

创建与销毁

进程:当我们启动一个Java程序的时候,进程就自动被创建好了,当然创建和销毁进程的代价较高,因为我们还需要分配和回收资源

线程:创建线程我们最常用的两种方法就是继承Thread类和实现Runnable接口,同时呢创建和销毁的代价也比较小,因为我们是复用进程的资源,此时如果进程被销毁那么该进程的所有线程也都会被销毁

独立性

进程:进程是相对独立的执行环境,一个进程的执行不会直接影响到另一个进程。即使一个进程崩溃或者退出,也不会对其他进程产生影响(除非他们之间有资源共享或者是父子关系)

线程:线程是进程的一部分,一个线程的执行可能会影响到另一个线程

通信方式

进程:进程之间的通信需要显示的机制,如管道,消息队列,共享内存等来实现

线程:线程共享进程的地址空间和资源,因此线程之间的通信更加方便快捷,它们可以直接读写进程共享的数据,无需额外的通信机制,但是这也需要我们时刻关注,避免产生死锁和避免竞态条件等问题

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值