1. 继承Thread类;
  2. 实现Runnable接⼝;
  3. 直接在函数体内:
  4. ⽐较:
    1. 实现Runnable接⼝优势:
      1. 适合多个相同的程序代码的线程去处理同⼀个资源
      2. 可以避免java中的单继承的限制
      3. 增加程序的健壮性,代码可以被多个线程共享,代码和数据独⽴。
        1. 继承Thread类优势:
        2. 可以将线程类抽象出来,当需要使⽤抽象⼯⼚模式设计时。
        3. 多线程同步
        4. 在函数体使⽤优势
        5. ⽆需继承thread或者实现Runnable,缩⼩作⽤域。