
java并发
这里主要讲关于java并发编程相关的知识
白日梦小说家
这个作者很懒,什么都没留下…
展开
-
Executor框架
Executor框架两级调度Java线程启动时会创建一个本地操作系统线程,当该Java线程终止时,这个操作系统线程也会被回收。操作系统会调度所有线程并将它们分配给可用CPU。在上面的调度模型中:在上层,Java多线程程序通常把应用分解为若干任务,然后使用用户级的调度器将这些任务映射为固定数量的线程;在底层,操作系统内核将这些线程映射到硬件处理器上。Executor框架结构Executor框架由3大部分组成任务包括被执行任务需要的实现接口(Runnable接口或Callable接口)Ru原创 2020-06-06 19:02:03 · 177 阅读 · 0 评论 -
Java中的线程池
合理使用线程池的好处降低资源消耗通过重复利用已创建的线程降低线程创建和的销毁造成的消耗提高响应速度当任务到达时,任务可以不需要等到线程创建就能立即执行提高线程的可管理性线程是稀缺资源,如果无限制创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优、监控线程池的实现原理线程池的处理流程线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下一个流程线程池铺垫工作队列是原创 2020-06-04 20:51:24 · 160 阅读 · 0 评论 -
Java并发编程之Volatile关键字
并发编程的三个重要特性原子性原子性指在一次的操作或多次的操作中,要么所有操作全部执行且不会受到任何因素的干扰而中断,要么所有操作全部不执行可见性当一个线程对共享变量进行修改,另外的线程可以立刻看到修改后的新值。有序性有序性是指程序代码在被执行过程中的先后顺序。Java编译器以及运行期的优化,导致代码的执行顺序未必就是在编写代码时的顺序。关于volatile下面有必要说一下内存与CPU相关的知识CPU Cache模型CPU的处理速度和内存访问速度之间差距很大,通过直连内存的方原创 2020-05-11 15:24:46 · 297 阅读 · 0 评论 -
Java并发基础Java中的锁
锁是用来控制多个线程访问共享资源的方式,一个锁能够防止多个线程同时访问共享资源。Lock在**Lock接口出现之前,Java通过synchronized关键字实现锁功能,JDK 1.5之后,在并发包中新增了Lock接口来实现锁功能,有与synchronized关键字类似功能,只是在使用时需要显示的获取锁和释放锁,拥有了锁释放和获取的可操作性、可中断性等synchronized关键字不具备的特性。在使用synchronized关键字会隐式的获取锁和释放锁,但锁的获取和释放固化,即先获取后释放。Lock接口原创 2020-05-09 00:11:20 · 207 阅读 · 0 评论 -
Java并发容器
在多线程环境中,使用HashMap可能会导致程序死循环,使用线程安全的HashTable效率低效,所以便有了ConcurrentHashMap。ConcurrentHashMap利用锁的分断技术可有效提升并发访问率,在容器里有多把锁,每一把锁用于锁容器其中一部分数据,当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效提升并发访问效率。ConcurrentHashMap的结构ConcurrentHashMap由Segment数组结构和HashEntry数组结构组成。Se原创 2020-05-08 23:40:31 · 216 阅读 · 0 评论