线程相关问题

2019-10-23  本文已影响0人  54c3920a52b4
  1. 常用并发多线程包 java.util.concurrent
  2. synchronized 可重入性 子类可以访问父类的加锁方法
  3. 非锁线程可以访问锁定线程
  4. volatile 可以使变量对其它线程的可见性但不保证原子性 ,性能比synchronized要高。synchronized 既保证可见性也保证原子性
  5. Atomicxxx方法保证原子性 在用于对数字进行自增自减时可以代替synchronized
  6. wait首先锁定当前对象 再调用当前对象的wait方法 当前线程就进入了等待状态并且释放锁 ,此时其它线程可以进入 当调用这个对象的notify方法才可以重新启用线程
  7. 同步方法和非同步方法可以同时调用10.reentrantLock 不会主动释放锁 可以用tryLock和指定时间来进行尝试获取锁 其返回值为true /false 。可以指定为它公平锁,等待时间长的先获得锁。
  8. wait 释放了锁,只能在同步方法和同步块中使用。sleep没有释放锁,可以在任何地方使用
  9. 死锁产生:多个线程互相持有对方正在等待的锁
上一篇下一篇

猜你喜欢

热点阅读