码迷,mamicode.com
首页 > 编程语言 > 详细

关于Java中的程序,进程和线程的详解...

时间:2015-03-03 13:19:53      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

    

    程序:一段静态的代码,一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体,是应用软件执行的蓝本。

   进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命

          周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了一个程序在

         一定的数据 集上运行的全部动态过程。通过进程控制块(PCB)唯一的标识某个进程。同时进程占据着相应的资源(例如包

         括cpu的使 ,轮转时间以及一些其它设备的权限)。是系统进行资源分配和调度的一个独立单位。

           程序和进程之间的主要区别在于:

                       状态         是否具有资源       是否有唯一标识      是否具有并发性

            进程     动态                有                      有                     有

            程序     静态                无                      无                     无

    线程: 可以理解为进程的多条执行线索,每条线索又对应着各自独立的生命周期。线程是进程的一个实体,是CPU调度和分派的

            基本单位,它是比进程更小的能独立运行的基本单位。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之

            间可以并发执行。

            这里在详细讲解一下Java中的进程和线程的概念。

            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.线程被提前强制终止。

            

 

关于Java中的程序,进程和线程的详解...

标签:

原文地址:http://www.cnblogs.com/xiohao/p/4310644.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!