黑马程序员-JAVA基础-多线程概念与创建

来源:互联网 发布:绩效改进合力矩阵 编辑:程序博客网 时间:2024/06/05 20:33

------- android培训、java培训、期待与您交流! ---------

多线程(一)

线程:

        每一个进程执行都有一个执行顺序,该顺序就是一个执行路径或者叫一个控制单元,而线程就是进程中的一个独立单元。

个人理解:JAVA中的线程就是一个继承Thread或实现Runnable接口的类,封装在run(){}中的代码。

多线程的意义:让多个代码同时运行,这里的同时运行并非真正意义上的同时运行,而是因为CPU在做着快速的切换,导致看上去是同时运行的,其实在某个时间点,只有一个线程在运行。每个线程都有获取CPU执行权的权力。

创建方式:

       1.继承Thread类或实现Runnable接口。

       2.Thread方式:继承Thread,复写run(),启动线程

class PrimeThread extends Thread {        long minPrime;        PrimeThread(long minPrime) {            this.minPrime = minPrime;        }        public void run() {            // compute primes larger than minPrime              . . .        }    }

然后,下列代码会创建并启动一个线程:

 PrimeThreadp = new PrimeThread(143);    p.start();

Runnable接口:实现Runnable,建立子类对象,传入Thread构造函数,启动线程

class PrimeRun implements Runnable {        long minPrime;        PrimeRun(long minPrime) {            this.minPrime = minPrime;        }        public void run() {            // compute primes larger than minPrime              . . .        }    }

然后,下列代码会创建并启动一个线程:

PrimeRun p = new PrimeRun(143); newThread(p).start();

实现方式与继承方式的区别:
         1.当某个类已经有父类了,这时无法用继续Thread方法建立线程,因为JAVA中无法多继承
         2.当某个类已经有父类了,这时可以实现Runnable方法建立线程,这样既继承了父类的属性又能建立线程。
         3.Runnable建立的多线程可以使用同一对象中封装的数据,而Thread要实现这样的功能必须将数据static化,但会导致数据的生命周期过长。


------- android培训、java培训、期待与您交流! ---------