11 2021 档案
摘要:在概念上,信号量维持一组许可证。 如果有必要,每个acquire()都会阻塞,直到许可证可用,然后才能使用它。 每个release()添加许可证,潜在地释放阻塞获取方。 但是,没有使用实际的许可证对象; Semaphore只保留可用数量的计数,并相应地执行。 信号量通常用于限制线程数,而不是访问某些
阅读全文
摘要:1.CountDownLatch 允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。 public CountDownLatch(int count)构造一个以给定计数 CountDownLatch CountDownLatch。 参数 count -的次数 countDown()
阅读全文
摘要:1.实用程序类通常在并发编程中很有用。 2.有关线程的状态 : NEW :新建 RUNNABLE:就绪 BLOCKED:阻塞 WAITING:等待 TIMED_WAITING: TERMINATED:死亡 3.sleep和wait区别: 1.不同类,一个在Thread,一个在Object 2.一个不
阅读全文
摘要:1.不安全的操作,容易报ConcurrentModificationException Map<String, String> map = new HashMap<>(); for (int i = 0;i<10;i++){ new Thread(()->{ map.put(Thread.curre
阅读全文
摘要://不安全的写法 ,会报出 ConcurrentModificationException,当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。 public static void main(String[] args) { List<String> list = new ArrayLis
阅读全文
摘要:在互联网协议中按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层。规定网络地址的协议叫ip协议 一般通俗的有应用层,传输层,网路层,数据链路层,物理层五层 http://www.cnblogs.com/linhaifeng/articles/5937962.html#_label4 对于
阅读全文
摘要:1.结构分析:从JDK1.8开始,使用 数组+链表/红黑树。 当链表长度>8的&数组大小>=64 时转化为红黑树。 当红黑树节点小于6,转换为链表 2.数据插入流程 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, bool
阅读全文

浙公网安备 33010602011771号