进程与线程

一、进程:进程就是一个正在执行的程序。

二、线程:线程是进程执行的一条线索或路径。进程中至少有一个线程存在。

三、多线程:顾名思义,一个进程中的多个线程。

        线程的开始:当要运行一个程序时,JVM首先会找到main函数,然后从main函数开始执行(也就是说,程序是从main函数开始运行的),

    此时,程序就成为一个进程,既然是进程肯定有线程的存在。此时的线程就是主线程,主线程会向下顺序执行代码。

        如果程序中存在一个庞大的循环语句,主程序就会一直在这里运行,直到循环语句结束,下面的代码才能被执行到。

    这可能要花费较长的时间,影响了程序运行的效率。所以,为了提高程序的效率,就引入了多线程。由主线程开辟另一个或多个线程,

    让这些线程都去执行代码。

    创建线程的两种方法:

        一、1.定义一个类继承Thread,重写Thread中的run方法,run方法中存放自定义的要让该程序执行的代码。

            2.用子类new一个线程对象,线程对象调用线程中的start方法,来开启线程。

                class Demo extends Thread

                {

                    public void run()

                    {

                        System.out.println("我要运行的代码");

                    }

                }

                class ThreadDemo

                {

                    public static void main(String[] args)

                    {

                        Demo d=new Demo();

                        d.start();

                    }

                }

        二、1.实现Runnable接口,复写run方法。

            2.用Thread来new一个线程对象,并将Runnable的子类对象传入Thread的构造方法中。

                class Demo implements Runnable

                {

                    public void run()

                    {

                        System.out.println("Hello World");

                    }

}

                class ThreadDemo

                {

                    public static void main(String[] args)

                    {

                        Thread t=new Thread(new Demo());

                        t.start();

                两种方法的比较:Java中的类只能继承一个类,第一种方法中,当Demo继承了Thread之后,就不能再继承其

                他类,但Demo很有可能是另一个类的子类,这时就出现了局限。第二种方法中,Demo实现了接口Runnable,

                同时还能成为其他类的子类,使用较多。

单核状态下,在某一时刻只有一个线程在运行。某一时刻可能有多个进程,每个进程中也可能有多个线程,CPU就在这

    些线程间来回的切换,线程也只有在获得CPU的执行权时才能运行。

四、线程的四个运行状态:

            1.运行:既有执行资格又有执行权。

            2.堵塞(临时状态):有执行资格没有执行权。等待CPU的执行权,一旦获得就进入运行状态。

            3.冻结:没有执行资格也没有执行权。CPU不会分配执行权给它,直到它被唤醒。

                    从运行状态进入冻结状态:sleep(time)或wait();

                    被唤醒:sleep的时间到或notify().

            4.消亡:run方法结束,或stop()

进程与线程,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。