黑马程序员技术交流社区

标题: 多线程是如何理解的,请代码举例 [打印本页]

作者: bukai123    时间: 2015-10-20 15:42
标题: 多线程是如何理解的,请代码举例
多线程是如何理解的,请代码举例
作者: Id_820    时间: 2015-12-2 23:05
/*
* 进程: 正在执行的程序, 每一个进程都会有一个执行的顺序, 称为执行单元
* 线程: 就是进程中的一个独立的单元。
*
*
* 创建线程的两种方式:
* 1.继承Thread, 并重写run()方法
*   掉用start()方法, 开启线程
*   
* 2.实现Runnable接口, 并重写run()方法
*          创建实现类的对象, new Thread(实现类的对象).start() 开启线程
*
*
* 实现方式和继承方式的区别:
*   避免了JAVA单继承的局限性, 在定义线程的时候尽量使用实现的方式
*   实现Runnable接口: 代码存放在实现接口的类的run()方法中
*   继承Tread类: 代码存放在Tread类的子类的run()方法中
*   
*   Thread类用于描述线程。
*   该类定义了一个功能, 用于存储线程要执行的代码。该存储功能就是run()方法。
*   也就是说run()方法存储了线程要运行的代码。
*   
*   
*  
*
*
*
*/


class Demo extends Thread{
       
        @Override
        public void run() {
               
                System.out.println("run thread");
               
                //返回正在执行的线程对象
                Thread thread = Thread.currentThread();
               
                super.run();
        }
       
}



class Demo2 implements Runnable{
       
        private int t = 100;
       
        @Override
        public void run() {
               
                while (true) {
                        if(t<=0) return;
                        System.out.println(Thread.currentThread().getName() + " -> " + t--);
                }
        }
}


public class ThreadDemo {

        public static void main(String[] args) {
               
               

                Demo d = new Demo();
                d.start();        //开启线程并执行run()方法
               
                //d.run();        仅仅是对象调用方法       
               
                Demo2 d2 = new Demo2();
                new Thread(d2).start();
               
        }

}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2