AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的线程加入到队列中
huizhang43 阅读:13 评论:0 2024-08-22
CountDownLatch 是 Java 中的一个同步工具类。它允许一个或多个线程等待其他线程完成操作。通过设置初始计数值,其他线程每完成一项任务就调用 countDown 方法减少计数值,当计数值为 0 时,等待的线程被唤醒继续执行。
huizhang43 阅读:5 评论:0 2024-08-22
ConcurrentHashMap 是 Java 中的高并发容器。它通过分段锁等机制实现高效的多线程并发操作,支持多线程同时读,写操作也能较好地控制锁粒度,减少争用,确保线程安全,在多线程环境下提供出色的性能表现。
huizhang43 阅读:6 评论:0 2024-08-22
ArrayList 是 Java 中的一种动态数组实现。它可以自动扩容以适应存储更多元素。支持快速随机访问,通过索引可高效地获取和设置元素。但在插入和删除元素时,可能需要移动大量元素,效率较低。适用于频繁读取、少量插入删除的场景。
huizhang43 阅读:6 评论:0 2024-08-22
ArrayDeque 是 Java 中的一个双端队列实现。它可以在两端高效地进行插入和删除操作。既可用作栈,也能当队列。采用数组实现,能动态扩容。在多线程环境下不安全,适用于单线程或并发控制场景下对两端操作频繁的情况。
huizhang43 阅读:4 评论:0 2024-08-22