zoukankan      html  css  js  c++  java
  • java进程和线程的区别

    程序的概念:程序是指令的有序集合,是一个静态概念,本身是没有任何运行的含义。

    进程概念:进程是程序在处理机上的一次动态执行过程,它经历了从代码加载、执行到执行完毕的一个完整过程。

    线程概念:线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位

    进程的特性:

    1、独立性:进程是系统中独立存在的实体,是一个能独立运行的单位,它有自己的独立资源和私有的地址空间

    2、动态性:进程和程序的最大区别是,程序是静态的,进程是动态的,程序只是一个静态指令的集合,而进程是程序的一次运行过程,有了时间的概念,具有生命周期。

    3、并发性:进程之间可以交替执行

    线程的特性:

    1、进程之间不能共享内存,线程可以

    2、一个线程可以创建或销毁另一个线程

    3、同一个进程之间的多个线程可以并发执行

    进程的基本状态:

      1、就绪(Ready)状态

           当进程已分配到除CPU以外的所有必要资源后,只要在获得CPU,便可立即执行,进程这时的状态就称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将他们排成一个队列,称为就绪队列。

      2、执行状态

           进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态;再多处理机系统中,则有多个进程处于执行状态。

      3、阻塞状态

           正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即程序的执行受到阻塞,把这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态

     Java中的线程要经历4个过程

      1)创建

           创建一个Java线程常见的有两种方式:

           继承Thread类和实现Runnable接口这两种方式。

     2)执行

           线程创建后仅仅占有了内存资源,在JVM管理的线程中还没有该线程,该线程必须调用start方法通知JVM,这样JVM

           就会知道又有一个新的线程排队等候了。如果当前线程轮到了CPU的使用权限的话,当前线程就会继续执行。

     3)中断

          a.JVM将CPU的使用权限从当前线程切换到其它线程,使本线程让出CPU的使用权限而处于中断状态。

          b.线程在执行过程中调用了sleep方法,使当前线程处于休眠状态。

          c.线程在执行的过程中调用wait方法

          d.线程在使用cpu资源期间,执行了某个操作而进入阻塞状态。

     4)死亡

          死亡的线程不在具有执行能力。线程死亡的原因有二:

          a.线程正常运行结束而引起的死亡,即run方法执行完毕。

          b.线程被提前强制终止

    资料来源:http://blog.csdn.net/zidan_2011/article/details/7279228

                      http://www.cnblogs.com/xiohao/p/4310644.html

                      http://www.cnblogs.com/200911/archive/2012/07/16/2594143.html

  • 相关阅读:
    23种设计模式(1)
    设计模式六大原则
    关于设计模式
    《代码整洁之道》整理
    MySQL 查询优化
    互联网流量下的分层实验平台是咋做的
    机器学习web服务化实战:一次吐血的服务化之路
    RabbitMQ和Kafka到底怎么选(二)?
    RabbitMQ和Kafka到底怎么选?
    基于海量词库的单词拼写检查、推荐到底是咋做的?
  • 原文地址:https://www.cnblogs.com/mingyao123/p/7275313.html
Copyright © 2011-2022 走看看