实现runnable接口的好处
1、可以将线程类与任务类人离开,(解耦合)方便分工合作
2、实现接口可以多实现,继承只能单继承!
线程安全问题解决方式1----同步代码块
同步代码块就是java规定的一个关键字的代码块格式,可以解决线程安全的问题
格式:
synchronized(任意对象){
//可能出现线程安全的问题的代码
}
注意事项:
1、任意对象必须保证在多个线程中使用的是同一个对象
2、同步代码块必须包裹在第一次使用共享数据的地方。
线程安全问题解决方式2-同步方法
同步方法也是java规定的一种解决线程安全问题的方式
格式:
public synchronized void m(){
//可能出现线程安全的问题的代码
}
同步方法和同步代码块区别:
1、同步方法便于分工合作;
2、同步代码块可以指定对象监视器,同步方法不能指定对象监视器,默认使用this作为对象监视器;
3、当同步方法时静态方法的时候,对象监视器是当前类的字节码文件对象(类名.class);
Lock解决安全问题
Lock实现提供了比使用synchronized方法和语句可获得的更广发你的锁定操作。
如果创建Lock接ReentrantLock
Lock接口中的方法:Lock、unLock
使用格式:
Lock l =
线程状态图