1.1 Java线程的概念

1.2 Java多线程编程方法

方式1:继承Thread类

  • 定义一个类继承Thread类
  • 重写run()方法【run()方法封装线程执行的代码,直接调用相当于普通调用】
  • 创建类对象
  • 启动线程 【start()方法启动线程,然后有JVM调用此线程的run()方法】

方式2:实现Runnable 接口

  • 定义一个MyRunnable类实现Runnable 接口
  • 在MyRunnable类中重写run()方法
  • 创建MyRunnable类对象
  • 创建Thread类对象,把MyRunnable对象作为构造方法的参数
  • 启动线程

相比继承Thread类,实现Runnable接口的好处

  • 避免java单继承的局限性(只能继承一个类)(可以实现多个接口)
  • 合适多个相同程序的代码去处理同一个资源的情况,把线程和程序的代码、数据有效分离,较好的体现了面向对象的设计思想

    1.3 线程资源的同步处理

思考

实现多线程编程通常有哪两种做法?

方式1:继承Thread类
方式2:实现Runnable 接口

Java线程的状态有哪些?如何变换?

image.png

线程的资源控制如何实现?

给调用方法的对象加锁,保证一个方法处理的对象资源不会因其他方法的执行而改变。