上一页 1 2 3 4 5 6 7 8 9 ··· 167 下一页
摘要: 00000000 00000001 00000010 00000011 …… 01111111 127 = 2^7-1 10000000负的最大 01111111 10000000 -2^7 = -128 10000001 01111110 01111111 -(2^7-1) = -127 1000 阅读全文
posted @ 2019-08-15 19:51 无天666 阅读(1708) 评论(0) 推荐(0)
摘要: @SuppressWarnings("restriction") public abstract class AbstractQueuedSynchronizer1 extends AbstractOwnableSynchronizer1 implements java.io.Serializable { private static final long serialVersionUI... 阅读全文
posted @ 2019-08-14 22:26 无天666 阅读(262) 评论(0) 推荐(0)
摘要: @SuppressWarnings("restriction") public class ReentrantReadWriteLock1 implements ReadWriteLock, java.io.Serializable { private static final long serialVersionUID = -6992448646407690164L; priv... 阅读全文
posted @ 2019-08-14 22:22 无天666 阅读(194) 评论(0) 推荐(0)
摘要: public class ReentrantLock1 implements Lock, java.io.Serializable { private static final long serialVersionUID = 7373984872572414699L; //创建一个ReentrantLock1里面有一个sync,里面有一个state和队列。 //多个线程竞... 阅读全文
posted @ 2019-08-14 22:21 无天666 阅读(151) 评论(0) 推荐(0)
摘要: public class CyclicBarrierExample3 { private static CyclicBarrier1 barrier = new CyclicBarrier1(3, new Runnable() { @Override public void run() { System.out.printl... 阅读全文
posted @ 2019-08-14 22:19 无天666 阅读(134) 评论(0) 推荐(0)
摘要: public class CountDownLatchExample1 { public static void main(String[] args) throws Exception { ExecutorService exec = Executors1.newCachedThreadPool(); final CountDownLatch1 coun... 阅读全文
posted @ 2019-08-14 14:56 无天666 阅读(227) 评论(0) 推荐(0)
摘要: public class SemaphoreExample1 { private final static int threadCount = 20; public static void main(String[] args) throws Exception { ExecutorService exec = Executors1.newCachedThrea... 阅读全文
posted @ 2019-08-14 11:36 无天666 阅读(286) 评论(0) 推荐(0)
摘要: 代码在后面 读锁 = 共享锁 读锁写锁,公用一个Sync AQS state。 写锁是排他的,看到有人获取锁,他不会去获取,他获取了锁,别人也不会进来获取锁。 写锁的获取跟ReentarntLock一样,每次加1,是一个独占锁,只要有人获取了锁,自己就去排队,排队时候节点是EXCLUSIVE的节点, 阅读全文
posted @ 2019-08-13 22:52 无天666 阅读(268) 评论(0) 推荐(0)
摘要: Condition队列节点状态=-2,释放锁失败把自己设置为1。加到AQS状态是0,加到AQS之前判断是不是-2,不是就不加。如果是1就放到condition队列不管,然后去清理。 某段代码执行需要获取锁,就是单线程的,不需要获取锁就是线程不安全的。释放了锁就不是线程安全的。 获取锁的位置相当于sy 阅读全文
posted @ 2019-08-12 14:10 无天666 阅读(528) 评论(0) 推荐(0)
摘要: 队列不卡死,一定要:前面节点变成头结点唤醒时候能够唤醒后面节点,依次类推。 设置前面节点=-1就是为了前面节点走的时候,唤醒自己。 正常没有阻塞节点,设置前面=-1,再旋转一次尝试获取锁,才阻塞。即使设置前面节点=-1之前,前面节点=0唤醒失败走了,也不要紧,自己会再次旋转一次获取锁。设置-1之后, 阅读全文
posted @ 2019-08-08 20:00 无天666 阅读(400) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 167 下一页