A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董将 中级黑马   /  2012-12-7 23:42  /  1092 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多线程:
        什么是进程?
                进程:计算机中的正在执行的程序。
                        而每一个进程想要执行都需要至少有一个控制单元。
        什么是线程?
                进程中的控制单元就是线程。
       
        开启了多线程有什么好处?
                可以让多部分代码同时执行。
                例如:聊天程序。收数据和发数据是同时运行的。

        启动JVM,系统就会创建一个进程,该进程就会启动一个主线程,主线程要运行的代码在main方法中。
        (其实还启动了一个线程,专门用于垃圾回收。)

       
        ----------------------
        线程的创建方式:
        1,继承Thread类。该Thread类用于线程这类事物的描述。只要通过继承Thread类,将代码存入run方法中即可。
                步骤:
                1,定义类extends Thread。
                2,复写Thread类中的run方法。将多线程要执行的代码存放在run方法中。
                3,创建Thread类的子类对象,创建线程。
                4,调用start方法,开启线程,并执行run方法。
        2,实现Runnable接口,对外提供规则,让自定义类具备功能扩展,因为java的单继承局限性。
                1,实现Runnable接口。
                2,复写Runnable接口中的run方法。
                3,创建Thread类的对象,创建线程。
                4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
                        传递的原因:是为了让多线程去执行自定义的run方法。
                        因为run方法所属的对象是Runnable接口的子类对象,所以将该对象在线程初始化的时候进行传递。
                        线程以初始化就明确了要执行的线程代码位置。

                5,调用Thread类start方法,开启线程,并执行Runnable接口子类的run方法。


        所以,如果自定义类已有明确的父类,那么它内部需要被多线程执行的代码,只能存入Runnable接口的run方法中。
        class SubDemo extends Demo implements Runnable
        {
                public void run()
                {
                        show();
                }
                void show()
                {
                        //需要被多线程执行的代码
                }
        }

        在创建多线程时,建议使用第二种方式.
        原因:
        1,该种方式避免了单继承的局限性。
        2,可以实现多个线程的资源共享。

点评

哥们儿,不要为了刷分而上贴子 。  发表于 2012-12-8 00:41

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马