java多线程 (1)

1、程序、进程、线程

程序:是一段静态的代码,它是应用软件执行的蓝本。

进程:是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身产生、发展至消亡的过程。

线程:线程是比进程更小的执行单位。

         一个进程在其执行过程中,可以产生多个线程,形成多个执行线索,每个线索,即每个线程也有它自身的产生、存在和消亡的过程,也是一个动态的概念。


2、线程的状态与生命周期

     java使用Thread类及子类的对象来表示线程,新建的线程在它的一个完整的生命周期中通常要经历如下的4个状态。

     新建,当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态。此时它已经有了相应的内存空间和其他资源。

     运行,线程创建后仅仅是占用了内存资源,在JVM管理线程中还没有这个线程,此线程必须调用start()方法通知JVM,这样JVM就会知道又有一个新线程排队等候切换了。

               当JVM将CPU的使用权限切换给线程时,如果线程是Thread的子类创建的,该类中的run()方法就立刻执行。必须在子类中重写父类的run方法,因为Thread类中的run()方法没有具体内容。

     中断,线程使用CPU资源期间,执行sleep(int millsecond)方法,使当前线程进入休眠状态。

               wait()、notify()、notifyAll()之后再详细叙述。

     死亡,处于死亡状态的线程不具有继续运行的能力。

               线程死亡的原因有二种,一个是正常运行的线程完成了它全部工作;二是线程被提前强制性地终止。

demoCode:

public class threadDemo extends Thread{
    public static void main(String[] args){
        threadOne one = new threadOne();
        threadTwo two = new threadTwo();
        one.start();
        two.start();
        for(int i=0; i<=9; i++){
            System.out.println("threadMain......");
        }
    }
}

class threadOne extends Thread{
    public void run(){
        for(int i=0; i<=9; i++){
            System.out.println("threadOne......");
        }
    }
}

class threadTwo extends Thread{
    public void run(){
        for(int i=0; i<=9; i++){
            System.out.println("threadTwo......");
        }
    }
}

 

posted @ 2016-07-06 15:57  smilelily126  阅读(97)  评论(0编辑  收藏  举报