美文网首页JavaEE Note程序员
线程和进程的区别

线程和进程的区别

作者: chcvn | 来源:发表于2017-11-23 17:00 被阅读16次

简单的来说

  • 一个程序至少有一个进程,一进程至少有一个线程

  • 线程的划分大小小于进程,所以使得多线程程序的并发性能高!

  • 而且,进程在执行的过程中,有着自己独立的内存单元,而多个线程共享内存,从而极大的提高了程序的运行效率.

而他们的区别在于:

每个独立的线程有一个程序运行入口,顺序执行序列和程序的出口.
但是线程不能够独立运行,必须是依赖程序,由程序提供多个个线程的执行控制!
从逻辑上看,多线程的意义在于一个程序中,有多个执行部分可以同时执行.但操作系统并没有将多个线程看做多个独立的应用,来实现进程的管理和资源分配,这是最重要的区别,也是最大的不同.

为什么这么说列?

* 进程,是一个具有独立功能的程序,关于某个数据集合上的一次远行活动,进程是系统进行资源分配和管理的独立单位.
* 线程是进程的一个实体,是cpu在调度和分配的基本单位.
* 线程自己基本上不拥有系统的资源,它只是有一些运行必不可少的资源�但是它可以与同一进程中的其他线程共享进程所拥有的全部资源

!! 这同时也是 多线程的安全问题
因为多个线程同时访问同一个数据,而现在的cpu 主频,最低的也是1GHz吧, 也就是说 cpu 高达每秒几十亿的计算,你同一条数据,在 几个线程中,以几十亿的概率被几个线程同时访问,不出现安全性才怪!
(如何解决此问题:把线程死锁就可以有效的避免,数据重复读取的问题了)

然后,创建线程有哪些方式?

  • 刚才也说了,一个进程至少有一个线程,当我们不做任何的处理的时候,就是单进程.
    而实现多线程
    • 要么继承Thread类,创建线程子类
      重写run 方法,这个run方法的方法体就代表了线程要完成的任务,大部分javaee工程师,都喜欢叫这个方法体为,执行体
      (然后调用对象的,start()方法,启动该线程)
    • 要么就实现Runnable 接口创建线程类
      一样的,重写run方法,
      start启动
      但是要注意:
      创建Runnable实例类的实例,是作为Thread的target来创建Thread对象的,这个Thread才是线程的真正对象.

思维导图如下:

enter description hereenter description here

相关文章

  • 线程和进程概念

    线程和进程 进程 线程 线程和进程的区别

  • java面试3

    1. 进程与线程的区别? 进程和线程的关系: 进程与线程的区别: 2.struts2和springMVC的区别? ...

  • 剑指offer:告诉你哪些不为人知的Java 多线程与并发整理

    一、进程和线程的区别 1. 进程和线程的由来: 2. 进程和线程的区别 进程是资源分配的最小单位,线程是CPU调度...

  • 面试题_ios(四)

    1.进程和线程的区别和联系 Progress和Thread,进程和线程是操作系统里的基本概念线程与进程的区别:线程...

  • 线程

    线程和进程 进程 线程 线程和进程的区别 线程的好处和坏处 创建线程的方式一 线程中常用的方法 代码实例 创建线程...

  • 多线程

    一、线程和进程的关系和区别 1.1 线程和进程的定义 线程(Thread):也被称为 轻量级进程(Lightwei...

  • 进程和线程的区别及通信方式(TCP三次握手四次挥手)

    1、进程和线程的区别: 答:线程是指进程内的一个执行单元,也是进程内的可调度实体。与进程的区别: (1)调度:线程...

  • 线程、多线程和线程池 面试题

    开启线程的三种方式? 线程和进程的区别? 为什么要有线程,而不是仅仅用进程? run()和start()方法区别 ...

  • 操作系统学习笔记

    进程和线程 进程和线程的区别 线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Pro...

  • 1.多线程基础(一)基础中基础

    1.前言 进程,线程和任务的基本概念的概括图 进程: 线程: 线程的串行: 线程和进程的区别: 多线程的优缺点: ...

网友评论

    本文标题:线程和进程的区别

    本文链接:https://www.haomeiwen.com/subject/rmozvxtx.html