线程安全性_竞态条件

2016年08月07日

竞态条件

在上一篇文章中,我们谈到,多线程的问题目前就是访问共同的可变状态导致,也就是竞态条件,最常见的竞态条件就是:“先检查后执行”,而这个检查是基于可变的状态。可见一种可能 的解决办法就是:在一个线程修改访问一个状态时,要防止其他线程访问修改,也就是加锁机制,保证原子性。下面简单说下synchronized关键字的用法

1.修饰代码块synchronized(lock) {

2.修饰方法synchronized [staic] method() {

线程必须先拿到对象互斥锁(对于static方法,则是同一个类的所有实例之间互斥),才能执行大括号中代码,另外修饰方法时,子类并不能继承父类方法