• 创建多线程的两种方式


    1. 方式一:继承Thread类的方式:

    1. 创建一个继承于Thread类的子类
    2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中
    3. 创建Thread类的子类的对象
    4. 通过此对象调用start():①启动当前线程 ② 调用当前线程的run()
    
    说明两个问题:
    问题一:我们启动一个线程,必须调用start(),不能调用run()的方式启动线程。
    问题二:如果再启动一个线程,必须重新创建一个Thread子类的对象,调用此对象的start().
    

    2. 方式二:实现Runnable接口的方式:

    1. 创建一个实现了Runnable接口的类
    2. 实现类去实现Runnable中的抽象方法:run()
    3. 创建实现类的对象
    4. 将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
    5. 通过Thread类的对象调用start()
    

    3. 两种方式的对比:

    开发中:优先选择:实现Runnable接口的方式
    原因:1. 实现的方式没类的单继承性的局限性
    2. 实现的方式更适合来处理多个线程共享数据的情况。
         
    联系:public class Thread implements Runnable
    相同点:两种方式都需要重写run(),将线程要执行的逻辑声明在run()中。
          目前两种方式,要想启动线程,都是调用的Thread类中的start()。
    
  • 相关阅读:
    求欧拉回路 UOJ117
    POJ2749 Building road
    POJ3678 Katu Puzzle
    快速修改和上传网站图片技巧
    phpstudy易犯的错误
    关于网站端口的认识
    金融互助后台验证码显示不出来。
    全局搜索数据库
    MySQL命令行导出数据库
    MySQL导入大sql 文件大小限制问题的解决
  • 原文地址:https://www.cnblogs.com/Krisone/p/13138962.html
Copyright © 2020-2023  润新知