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线程的状态有哪些?如何变换?
线程的资源控制如何实现?
给调用方法的对象加锁,保证一个方法处理的对象资源不会因其他方法的执行而改变。