关于Java中的进程和线程的理解

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

程序:一段静态的代码,一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体,是应用软件执行的蓝本。
进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命
        周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了一个程序在
        一定的数据 集上运行的全部动态过程。通过进程控制块(PCB)唯一的标识某个进程。同时进程占据着相应的资源(例如包
        括cpu的使用 ,轮转时间以及一些其它设备的权限)。是系统进行资源分配和调度的一个独立单位。
        程序和进程之间的主要区别在于:
                        状态         是否具有资源       是否有唯一标识      是否具有并发性
            进程    
动态                有                      有                     有 
            程序     静态                无                      无                     无

          进程的基本状态:
1、就绪(Ready)状态
     
    当进程已分配到除CPU以外的所有必要资源后,只要在获得CPU,便可立即执行,进程这时的状态就称为就绪状态。
在一个系统中处于就绪状态的进程可能有多个,通常将他们排成一个队列,称为就绪队列。
2、执行状态
       
进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态;再多处理机系统中,则有多个进程处于执行状态。
3、阻塞状态
       
正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,亦即程序的执行受到阻塞,
把这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。
三种进程之间的转换图:
线程: 可以理解为进程的多条执行线索,每条线索又对应着各自独立的生命周期。线程是进程的一个实体,是CPU调度和分派的
      基本单位,它是比进程更小的能独立运行的基本单位。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之
      间可以并发执行。
Java中的线程要经历四个阶段:
1、创建:
创建一个Java线程常见的有两种方式(实际上,创建线程最重要的是提供线程函数(回调函数),该函数作为新创建线程的入口函数,实现自己想要的功能。):
继承Thread类,实现Runnable接口
代码段:
//继承继承继承Threadl类
class MyThread extends Thread{ 
	 public void run() { 	
		 System.out.println("My thread is started."); 
	 } 
}
MyThread myThread = new MyThread(); 
		 myThread.start();
//实现Runnable		 
class MyRunnable implements Runnable{ 
	 public void run() { 
	     System.out.println("My runnable is invoked."); 
	 } 
}
Thread myThread = new Thread( new MyRunnable()); 
	   myThread.start();
2、执行:
线程创建后仅仅有了内存资源,在JVM管理的线程中还没有该线程,该线程必须调用start方法
通知JVM, 这样JVM就会知道又有一个新的线程在排队等候了,如果当前线程轮到CPU的使用
权限的话,当前线程就会继续执行。
3、中断:
a.JVM将CPU的使用权限从当前线程切换到其它线程,使本线程让出CPU的使用权限而处于中断状态。
b.线程在执行过程中调用了sleep方法,使当前线程处于休眠状态。
c.线程在执行的过程中调用wait方法
d.线程在使用cpu资源期间,执行了某个操作而进如阻塞状态。
4、死亡:
死亡的线程不在具有执行能力。线程死亡的原因有二:
                a.线程正常运行结束而引起的死亡,即run方法执行完毕。
                b.线程被提前强制终止。




  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值