首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
码老思
掘友等级
软件开发工程师
|
Morgan Stanley
分享最通俗易懂的技术干货,让技术不再复杂!
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
JVM性能优化系列-(2) 垃圾收集器与内存分配策略
2. 垃圾收集器与内存分配策略 下面将对这些问题进行一一介绍。 在堆里存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,首要的就是确定这些对象中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。 引用计数器判断对象是否存活的过程是这样的:给…
JVM性能优化系列-(1) Java内存区域
1. Java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。主要包括:程序计数器、虚拟机栈、本地方法栈、Java堆、方法区(运 行时常量池)、直接内存。 程序计数器(Program Counter Register)是一块较小的…
Java并发编程系列-(9) JDK 8/9/10中的并发
CompletableFuture是JDK 8中引入的工具类,实现了Future接口,对以往的FutureTask的功能进行了增强。 CompletableFuture和Future一样,可以作为函数调用的契约,当向CompletableFuture请求数据时,如果数据还没有准…
Java并发编程系列-(8) JMM和底层实现原理
8. JMM和底层实现原理 线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就是通过共享对象进行通信…
Java并发编程系列-(7) Java线程安全
7. 线程安全 如果多线程下使用这个类,不过多线程如何使用和调度这个类,这个类总是表示出正确的行为,这个类就是线程安全的。 不做正确的同步,在多个线程之间共享状态的时候,就会出现线程不安全。 所有的变量都是在方法内部声明的,这些变量都处于栈封闭状态。 比如下面的例子,a和b都是…
Java并发编程系列-(6) Java线程池
6. 线程池 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题:如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来会大大降低系统的效率。…
Java并发编程系列-(4) 显式锁与AQS
Java在java.util.concurrent.locks包中提供了一系列的显示锁类,其中最基础的就是Lock接口,该接口提供了几个常见的锁相关的操作。 Lock的lock()方法保证了只有一个线程能够执有此锁。对于任何一个lock()方法,都需要一个unlock()方法与…
Java并发编程系列-(3) 原子操作与CAS
3. 原子操作与CAS 所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何context switch,也就是切换到另一个线程。 为了实现原子操作,Java中可以通过synchronized关键字将函数或者代码块包围,以实现操作的原…
Java并发编程系列-(2) 线程的并发工具类
JDK 7中引入了fork-join框架,专门来解决计算密集型的任务。可以将一个大任务,拆分成若干个小任务,如下图所示: 具体使用中,需要向ForkJoinPool线程池提交一个ForkJoinTask任务。ForkJoinTask任务有两个重要的子类,RecursiveAct…
Java并发编程系列-(1) 并发编程基础
一般来讲,CPU核心数和线程数的关系为核心数:线程数=1:1;但是如果使用了超线程技术,可以达到1:2甚至更多。 CPU采用时间片轮转机制,来调度不同的线程运行,又称RR调度,注意这样会导致上下文切换。如果线程数目过大,可能产生较大的线程切换开销。 进程:进程是具有一定独立功能…
下一页
个人成就
文章被点赞
863
文章被阅读
128,608
掘力值
5,005
关注了
0
关注者
217
收藏集
1
关注标签
5
加入于
2019-03-07