Java-多线程-线程安全小总结
Java-多线程-线程安全小总结
-
什么是线程的安全问题
- Java的线程安全问题,由于多线程任务中,会出现争抢资源的过程,可能导致共享资源出现问题。即一个线程还没有执行完,另一个线程就又把资源抢走了,这样,前一个线程对公共资源公共操作到一半,还没有完成所有操作,公共资源就可能出现各种误操作一样的问题;
-
为了解决线程之间的安全问题,所以就引入了同步监视器,平常一般也称为“锁”
-
而加入了同步监视器之后,也就实现了线程之间的同步
-
实现线程之间同步的方法有以下三种:详细点击链接
-
三种线程间同步方法比较
- Lock锁效率>同步代码块>同步方法
- Lock是显式锁(手动开启和关闭锁,别忘记关闭锁),synchronized是隐式锁
- Lock只有代码块锁,synchronized有代码块锁和方法锁
- 使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并且具有更好的扩展性(提供更多的子类)