摘要:
CAS(比较并且交换) 什么是原子操作?如何实现原子操作? 假定有两个操作A和B(A和B可能都很复杂),如果从执行A的线程来看,当另一个线程执行B时,要么将B全部执行完,要么完全不执行B,那么A和B对彼此来说是原子的。 实现原子操作可以使用锁,锁机制,满足基本的需求是没有问题的了,但是有的时候我们的 阅读全文
摘要:
ThreadLocal线程本地变量(副本)——不能用Map代替,因为这样所有线程又会去争夺Map资源,未解决根本问题 多个线程执行时,为了互不干扰资源,因此用到了ThreadLocal。 原理:Thread类里面有一个成员变量ThreadLocalMap,而ThreadLocalMap类里有成员变量 阅读全文
摘要:
死锁 产生的原因: 多个操作者争夺多个资源(操作者>资源数>=2) 拿到资源不放手 争夺资源的顺序不对 危害: 线程不工作了,但是整个程序还是活着的 没有任何的异常信息可以供我们检查 一旦程序发生了发生了死锁,是没有任何的办法恢复的,只能重启程序,对正式已发布程序来说,这是个很严重的问题。 解决方式 阅读全文