首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
mortal同学
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
2
文章 2
沸点 0
赞
2
返回
|
搜索文章
最新
热门
Java并发7:并发工具类
闭锁允许一个或者多个线程等待其他线程都完成了才继续执行。CountDownLatch 是一种闭锁的实现,使得一个或多个线程等待一组事情发生。通过计数器表示需要等待的事件数量;使用countDown()方法将计数器减去1,表示有一个事件发生;使用await()方法阻塞当前线程,等…
Java并发6:阻塞队列,Fork/Join框架
阻塞队列是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法: 阻塞队列常用于生产者消费者的场景。其中生产者是向队列添加元素的线程,消费者是从队列取出元素的线程,阻塞队列是存放和获取元素的容器。 ArrayBlockingQueue 是一个用数组实现的有界的,…
Java并发5:ConcurrentHashMap
HashMap 是非线程安全的,put操作可能导致死循环。其解决方案有 HashTable 和 Collections.synchronizedMap(hashMap) 。这两种方案都是对读写加锁,独占式,效率比较低下。 HashMap 在并发执行put操作时会引起死循环,因为…
Java并发4:锁
在Lock接口出现之前,Java程序依靠 synchronized 关键字实现锁的功能。锁提供了类似的同步功能,只是在使用时需要显式获取和释放锁,同时还拥有了锁的获取释放的操作性、可中断的获取锁以及超时获取锁等多种 synchronized 不具备的同步特性。 boolean …
Java并发3:线程
本文是根据《Java并发编程的艺术》以及之前的文章 https://juejin.im/post/6844903733273313293 和 https://juejin.im/post/6844903734556753933 共同整理而来。 进程是操作系统…
JAVA并发1:并发编程的挑战
一个CPU同一时刻只能执行一个线程;CPU 通过给每个线程分配一定的时间片,时间片非常短,通常是几十毫秒,来不停的切换线程执行任务,达到了多线程的效果。当线程用完自己的时间片后,及时任务还没有完成,操作系统也会剥夺它的执行权,让另一条线程执行。 当一条线程的时间片用完后,操作系…
Java并发2:JMM,volatile,synchronized,final
并发编程需要处理两个关键问题:线程之间如何通信以及线程之间如何同步。 通信是指线程之间以何种机制来交换信息。线程之间的通信机制有两种:共享内存和消息传递。 共享内存模型中,线程之间共享程序的公共状态,通过读-写内存中的公共状态进行隐式通信。多条线程共享一片内存,发送者将消息写入…
Java线程池
线程池是指管理一组同构工作线程的资源池。线程从工作队列中获取一个任务,执行任务,然后返回线程等待下一个任务。 线程生命周期的开销非常高。因为线程的创建和销毁都是有开销的。 资源消耗。活跃的线程会消耗系统资源,尤其是内存。 稳定性。在可创建线程的数量上存在一个限制。如果破坏了这个…
Java并发编程笔记6:线程池的使用
在 Executoors 中的 newChachedThreadPool, newFixedThreadPool, newScheduledThreadExecutor 的工厂方法返回的都是 ThreadPoolExecutor 对象。如果默认的执行策略不能满足需求,可以通过 …
Java并发编程实战笔记5:取消与关闭
如果外部代码能在某个操作正常完成之前将其置入“完成”状态,那么这么操作就可以称为可取消的。Java中有一些协作式的机制,使得请求取消的任务和代码都遵循一种协商好的协议。 线程中断是一种用于停止线程的协作机制,线程可以通过这种机制来通知另一个线程,告诉它在合适的或者可能的情况下停…
下一页
个人成就
文章被点赞
355
文章被阅读
55,891
掘力值
2,115
关注了
16
关注者
200
收藏集
1
关注标签
8
加入于
2018-11-01