- 同步与异步:
同步(共享):多个线程访问同一个方法,需要按照顺序执行(false为同步);
异步:多个线程访问同一个方法,可以并发执行(true为异步)
- 线程安全概念:当多个线程访问一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。
- synchronized:可以在任意对象或者方法上加锁,而加锁的这段代码称为"互斥区"或"临界区"。
- 多个线程多个锁 :多个线程,每个线程可以拿到自己指定的锁,分别获得锁后,执行Synchronized方法体的内容。
- 关键字Synchronized取得的锁都是对象锁,而不是把一段代码(方法)当做锁,所以代码中哪个线程先执行Synchronized关键字的方法,哪个线程就持有该方法所属对象的锁,两个对象,线程获得的就是两个不同的锁,他们互不影响。
- 在static静态方法上加上Synchronized关键字,表示锁定.class类,类一级别的锁(独占.class类)。
- 数据库事务ACID特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
- 事务的提交是指:事务里写的方法等完成并提交;事务的回滚是指:说事务中的方法出现了错误,没有返回正确的值,我们就认为这事务不成功,那么就需要回滚来撤销之前的所有操作。比方说事务里有两个方法a()、b()。如果a、b都成功则事务提交,反则如果有一个没有成功则两个方法都不提交!
- synchronized锁的重入:在使用synchronized的时候,当一个线程得到了一个对象的锁后,再次请求此对象时是可以再次得到该对象的锁。
- 存储过程:必须要写BEGIN...END,才能执行EXCEPTION这个操作。(针对oracle数据库来说)
未完待续