Java教程

进程和线程

本文主要是介绍进程和线程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

进程和线程

        • (1)进程和线程
        • (2)进程间通信方式
        • (3)什么时候使用多进程、什么时候使用多线程
        • (4)同一个进程内的线程会共享什么资源


(1)进程和线程

  • 区别
    1、进程是对运行时程序的封装,是系统进行资源分配和调度的基本单元,而线程时进程的子任务,是CPU分配和调度的基本单元
    2、一个进程可以有多个线程,但是一个线程只能属于一个进程。
    3、进程的创建需要系统分配内存和CPU,文件句柄等资源,销毁时也要进行相应的回收,所以进程的管理开销很大,但是线程的管理开销很小
    4、进程之间不会有影响,而一个线程的崩溃会导致进程崩溃,从而影响同个进程里面的其他线程。

(2)进程间通信方式

进程间通信方式主要有:管道、信号量、消息队列、信号、共享内存、套接字

(3)什么时候使用多进程、什么时候使用多线程

  • 1、频繁修改:需要频繁创建和销毁的,优先使用多线程
  • 2、计算量:需要大量计算的优先使用多线程,因为需要消耗大量CPU资源,且切换频繁,
  • 3、相关性:任务键相关性比较强的用多线程
  • 4、多分布:多机分布的使用多进程,多核分布的使用多线程

(4)同一个进程内的线程会共享什么资源

  • 该进程的地址空间
  • 全局变量
  • 堆空间
  • 线程的栈空间是自己独有的。
这篇关于进程和线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!