day32-线程基础02

打印 上一主题 下一主题

主题 883|帖子 883|积分 2649

线程基础02

3.继承Thread和实现Runnable的区别


  • 从java的设计来看,通过继承Thread或者实现Runnable接口本身来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thread类本身就实现了Runnable接口
  • 实现Runnable接口方式更加适合多个线程共享一个资源的情况,并且避免了单继承的限制,建议使用Runnable接口
3.1多线程售票问题

编程模拟三个售票窗口售票100张,分别使用继承Thread类和实现Runnable接口的方法,并分析有什么问题?
1.使用继承Thread的方法:
[code]package li.thread;//使用多线程,模拟三个窗口同时售票共100张public class SellTicket {    public static void main(String[] args) {        SellTicket01 sellTicket01 = new SellTicket01();        SellTicket01 sellTicket02 = new SellTicket01();        SellTicket01 sellTicket03 = new SellTicket01();        sellTicket01.start();//启动售票线程        sellTicket02.start();//启动售票线程        sellTicket03.start();//启动售票线程    }}//1.使用继承Thread类的方式class SellTicket01 extends Thread {    //多个对象共享同一个静态成员变量(多个实例的static变量会共享同一块内存区域)    private static int ticketNum = 100;//让多个线程共享ticketNum    @Override    public void run() {        while (true) {            if (ticketNum

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表