黑马程序员技术交流社区
标题:
【石家庄校区】就业班_JavaSE_day11_多线程
[打印本页]
作者:
风中的消逝
时间:
2018-4-23 14:56
标题:
【石家庄校区】就业班_JavaSE_day11_多线程
本帖最后由 小石姐姐 于 2018-4-24 17:10 编辑
就业班_JavaSE_day11_多线程
多线程
一 定义
进程:运行的应用程序。可以通过任务管理器查看。一个应用可能有一个或者多个进程。
线程:应用程序的一条执行路径。从属于进程,一个进程可能包含一个或多个线程。
同步:指程序中的多个线程按顺序一步一步执行,多见于多线程对共享资源的访问。
异步:与同步相反,多个线程可以同时执行。
二 线程的创建
1 继承Thread类,并重写run方法,通过Thread的start()方法启动线程。
2 实现Runnable接口,并重写run方法,然后new Thread( Runnable接口实现类),再
通过Thread的start()方法启动线程。
一般通过第二种方式来创建线程。
三 线程的同步
通过卖票问题引出线程的同步
创建多线程并且共享资源的实现方式:
一 继承Thread类,通过添加静态成员变量,来实现多个线程共享同一资源
二 实现Runnable接口,添加一个成员变量,或者静态成员变量,
创建Thread对象时,传入同一个runnable对象。来实现多个线程共享同一资源。
三 单独将业务代码抽取出来放在一个类中,只创建一个带业务类的对象,并在run方法中调用
业务方法。 该访问可以提供多个业务方法,供线程调用。
多个线程对共享资源的访问,通过锁机制来实现同步。
1. synchronized 代码块
2. synchronized 修饰方法
注意 多个线程需要同一把锁,即用同一个对象来上锁。
四 线程间通信、线程池、JDK5线程新特性后续补充。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2