您的位置:首页 > 职场人生

32.黑马程序员-多线程(实现Runnable接口)

2012-10-17 09:07 162 查看
------- android培训java培训、期待与您交流! ----------
1.Runnable(可运行的)接口概述

第二种创建线程的方式:声明实现Runnable接口的类,该类然后实现run方法。
Runnable接口只有一个方法void run(),覆盖这个方法,run()中写线程代码。

2.定义:

第一步:声明实现Runnable接口的类class。
第二步:覆盖void run()方法。//将线程要运行的代码存放在run方法中。
第三步:声明一个class的对象,如:PrimeRun p = new PrimeRun(143);//143是线程名。

注意:这个对象p还不是线程,因为创建线程必须是Thread对象或者Thread子类对象,它与Thread没有关系。那么怎么样让这个对象与Thread有关系呢?Thread类中定义了一个构造方法Thread(Runnable target)。

第四步:new Thread(p).start();//Thread(p)把实现Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。

为什么将这个子类对象传给Thread类的构造函数?
因为,自定义的run方法所属的对象是Runnable接口的子类对象。所以要让线程去指定指定对象的run方法。就必须明确该run方法所属对象。

第五步:调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。

3.两种创建方式的区别

实现方式和继承方式的区别:

实现方式好处:避免了单继承的局限性。在定义线程时,建议使用实现方式。
两种方式区别:

继承Thread:线程代码存放在Thread子类run方法中。
实现Runnable:线程代码存放在接口的子类的run方法。

4.声明实现了Runnable接口的对象,并没有创建线程,thread类及其子类才能创建线程。

如Ticket t =new Ticket(); //Ticket实现了Runnable
Thread t1 = new Thread(t); //创建了一个线程,把实现了 Runnable的ticket对象作为参数,创建线程。
t1.start();//线程开始运行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐