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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 安仔 中级黑马   /  2015-9-20 20:17  /  620 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.继承Thread类
        1.1定义一个类继承Thread
        1.2重写run方法
        1.3创建子类对象,就是创建线程对象
        1.4调用start方法,开启线程并让线程执行,同事还会告诉jvm去调用run方法。
2.实现Runnable接口
        2.1定义类实现Runnable接口
        2.2重写接口中的run方法,将线程任务定义在run方法中
        2.3创建Thread类的对象
        2.4将Runnable的子类对象作为参数传递给Thread类的构造函数
                因为线程已被封装到Runnable接口的run方法中,而这个run方法属于Runnable的子类对象
                所以将这个子类对象作为参数传递给Thread的构造函数,这样线程对象创建时就明确了线程任务
        2.4调用Thread类中的start方法开启线程。

4 个回复

倒序浏览
那你个人喜欢用哪一种呢?我觉得第一种比较好运用
回复 使用道具 举报
一般用第二种方法,因为第一种方法容易出现线程安全问题。
回复 使用道具 举报
这个贴不知道怎么样了
回复 使用道具 举报
chenguoyu520 发表于 2015-9-29 18:43
一般用第二种方法,因为第一种方法容易出现线程安全问题。

线程安全问题是因为多条线程操作同一资源会出现的问题,跟用哪种方法有关系?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马