同步:整个处理过程顺序执行。
异步:不需要等待方法执行完毕就执行。
两个线程同时访问方法,不需要共享数据,不会影响到其他线程的操作和结果,所以线程安全。
synchronized控制线程同步,锁的是对象不是代码。释放锁的情况:获取锁的线程执行完了该代码块,线程释放;线程执行发生异常,JVM会自动释放锁
如果由于等待IO或者其他原因被阻塞,没有释放锁,将无限等待下去
synchronized关键字,Lock是类
Lock必须手动获取和释放锁,可以中断获取,超时获取。Lock获取锁的对象需要我们亲自去释放,synchronized代码块执行完毕自动释放锁。
尝试非阻塞获取锁,能被中断获取锁,超时获取锁。
线程学习笔记
最新推荐文章于 2024-10-06 20:16:20 发布