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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小钟 中级黑马   /  2014-5-31 21:32  /  1073 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

创建线程的两种方式:
创建线程的第一种方式:继承Thread类。

创建线程的第二种方式:实现Runnable接口。

1,定义类实现Runnable接口。
2,覆盖接口中的run方法,将线程的任务代码封装到run方法中。
3,通过Thread类创建线程对象,并将Runnable接口的子类对象作为Thread类的构造函数的参数进行传递。
        为什么?因为线程的任务都封装在Runnable接口子类对象的run方法中。
        所以要在线程对象创建时就必须明确要运行的任务。

4,调用线程对象的start方法开启线程。


实现Runnable接口的好处:
1,将线程的任务从线程的子类中分离出来,进行了单独的封装。
        按照面向对象的思想将任务的封装成对象。
2,避免了java单继承的局限性。

所以,创建线程的第二种方式较为常用。

学到这还马马虎虎!
当讲到同步的时候就越来越蒙了!
什么同步锁,线程之间的通信,等待唤醒机制,生产者与消费者问题!感觉很复杂

4 个回复

倒序浏览
一点一点来,用的最多的是第二种方式,是实现runnable()接口的这种方式
回复 使用道具 举报
其实,你看源码之后,会发现,其实就第二种方式一种创建线程的方式,因为第一种new Thead方式,这种方式呢,Thread也是实现了runnable接口的 .其实本质上就第二种一种方式
回复 使用道具 举报
熟能生巧。呵呵。。
回复 使用道具 举报
学实现接口的这种方式就好了。  还有把锁的这个部分,  睡眠, 唤醒机制,弄明白。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马