首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
mortal同学
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
2
文章 2
沸点 0
赞
2
返回
|
搜索文章
最新
热门
Java并发编程实战笔记4:线程池
在生产环境中,为每个任务分配一个线程存在一些缺陷,尤其是当需要创建大量线程时。 线程生命周期的开销非常高。线程的创建和销毁都是有开销的。 资源消耗。活跃的线程会消耗系统资源,尤其是内存。 稳定性。在可创建线程的数量上存在一个限制。如果破坏了这个限制,很可能抛出OutOfMemo…
Java并发编程实战笔记3:基础构建模块
在上文已经说明,委托是构造线程安全类的一个最有效策略,也就是让现有的线程安全类管理所有的状态即可。以下将介绍这些基础构建模块。 同步容器类包括Vector和Hashtable以及由Collections.synchronizedXxx等工厂方法创建的同步封装器类。这些类实现线程…
Java并发编程实战笔记2:对象的组合
通过封闭机制与合适的加锁策略结合起来,可以确保以线程安全的方式来使用非线程安全的对象。 在Java的类库中,有些类的唯一用途就是讲非线程安全的类转化为线程安全的类。一些基本的容器类并非是线程安全的,例如ArrayList和HashMap,但是可以通过包装器工厂方法,例如Coll…
Java并发编程实战笔记1:线程安全性
线程安全,主要是对共享的、可变的状态的访问要保证其安全性。共享意味着变量可以由多个线程同时访问,可变则意味着变量的值在其生命周期内可以发生变化。一个对象是否需要是线程安全的,取决于它是否被多个线程访问。需要采用同步机制来保证对象的线程安全。 Java中的同步机制主要采用关键字s…
Java多线程编程笔记10:单例模式
立即加载就是指使用类的时候已经将对象创建完毕,常见的实现方法就是直接new实例化。也就是在调用方法前,实例就被创建了。示例代码如下所示: 可以发现,实现了单例模式,因为多个线程得到的实例的hashCode是一样的。 延迟加载就是在调用getInstance()方法时实例才被创建…
Java多线程编程笔记9:ReentrantReadWriteLock
ReentrantLock具有完全互斥排他的效果,也即同一时间只有一个线程在执行ReentrantLock.lock()方法后边的任务。这样做保证了实例变量的线程安全性,但是效率低下。 ReentrantReadWriteLock类是ReadWriteLock接口的实现类,这是…
Java多线程编程8:ReentrantLock
锁是用于多个线程控制对共享资源的访问的工具。通常,锁提供对共享资源的独占访问:一次只能有一个线程可以获得锁,并且对共享资源的所有访问都要求先获取锁。但是,一些锁可能运行并发访问共享资源。 在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在JD…
Java多线程编程7:join()方法和ThreadLocal类
在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待子线程执行完成之后再结束,这个时候就要用到join()方法了。另外,一个线程需要等待另一个线…
Java多线程编程笔记6:通过管道进行线程间通信
Java中提供了很多Stream来对数据进行操作。PipeStream是一种特殊的流,用于在不同的线程间直接传送数据。一个线程发送数据到输出管道,另一个线程从输入管道中读取数据。通过使用管道,实现不同线程间的通信,而无须借助类似临时文件之类的东西。 JDK中提供了四个类:Pip…
Java多线程编程笔记5:等待/通知机制
当两个线程,一个线程通过轮训机制来判断另一个线程的变化,然后满足条件时,自己再进行操作,从而完成了通信。但是这种机制,如果轮询时间间隔小,浪费了CPU资源;轮询时间相隔很大,可能在满足条件时错过。 多个线程之间通过共同访问一个变量进行通信,不仅花费了读取的时间,还不能确定独到的…
下一页
个人成就
文章被点赞
355
文章被阅读
56,561
掘力值
2,117
关注了
16
关注者
200
收藏集
1
关注标签
8
加入于
2018-11-01