该会的都得会

红黑树:

根节点是黑色的

找到一个节点的路径一定是红黑交替的

每一个节点必须有颜色,要么黑色要么红色

当前节点与其子节点的颜色不一样

每一个节点都保存了颜色、值、父节点、左子树地址、右子树地址;

插入一个节点时按照二叉树的查找找元素所在位置,不过初次着色为红色,当新插入的节点导致红黑树不平衡后就需要再次调整平衡,包括修改颜色。

Treemap底层是用红黑树实现的

CAS :compare and swap 类似于乐观锁,只有预期的值改变了才会判断做不做

validate:保证该变量对所有的线程都可见

操作原子性

放在公用内存里保证大家都可以见

sychronized:关键字,可以修饰普通方法、代码块、静态方法

锁的可重入是指子类已经有锁了,父类也需要锁的时候不需要再加锁

Lock:显式锁,必须手动释放锁,是最大的区别

锁的底层实现是用栈和队列实现的

private final ReentrantLock lock = new ReentrantLock();

lock.lock();

sychronized 和 reentrantlock都是互斥锁

reentrantreadwritelock是读写锁,可共享的;

线程池:threadpoolexecutor

体现一种提交任务和任务执行分离的策略

forkjoinpool:线程池

你可能感兴趣的:(该会的都得会)