java
ybfqsun
阳光总在风雨后
练心、静气
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
jvm 初探
初探jvm学习原创 2023-03-06 21:35:24 · 204 阅读 · 0 评论 -
ThreadLocal 学习常见问题
threadLocal常见问题原创 2023-03-06 21:16:08 · 539 阅读 · 0 评论 -
java 阻塞队列使用ArrayBlockingQueue
这些阻塞队列都实现了BlockingQueue接口阻塞队列的操作方法 在阻塞队列中,提供了四种处理方式 1. 插入操作 add(e) :添加元素到队列中,如果队列满了,继续插入 元素会报错,IllegalStateException。 offer(e) : 添加元素到队列,同时会返回元素是否插入 成功的状态,如果成功则返回 truepu...原创 2019-08-31 00:17:48 · 130 阅读 · 0 评论 -
java Atomic 原子操作 juc
原子操作类 原子性这个概念,在多线程编程里是一个老生常谈的问题。 所谓的原子性表示一个或者多个操作,要么全部执行完,要么一个也不执行。不能出现成功一部分失败一部分的情 况。 在多线程中,如果多个线程同时更新一个共享变量,可能 会得到一个意料之外的值。比如 i=1 。A 线程更新 i+1 、 B 线程也更新 i+1。 通过两个线程并行操作之后可能 i 的值不等于 3。而可...原创 2019-08-31 13:53:27 · 136 阅读 · 0 评论 -
java线程池的实现原理
本文来源于《JAVA并发编程的艺术》书Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序 都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源...原创 2019-09-02 23:18:03 · 140 阅读 · 0 评论 -
java 常用线程池FixedThreadPool、SingleThreadExecutor、CachedThreadPool、ScheduledThreadPool
10.1 Executor框架简介 10.1.1 Executor框架的两级调度模型 在HotSpot VM的线程模型中,Java线程(java.lang.Thread)被一对一映射为本地操作系统线 程。Java线程启动时会创建一个本地操作系统线程;当该Java线程终止时,这个操作系统线程 也会被回收。操作系统会调度所有线程并将它们分配给可用的CPU。10.1.2 Execut...原创 2019-09-03 22:53:40 · 1325 阅读 · 0 评论 -
java FutureTask
FutureTask FutureTask 的类关系图如下,它实现 RunnableFuture 接口,那么这个 RunnableFuture 接口 的作用是什么呢。 在讲解 FutureTask 之前,先看看 Callable, Future, FutureTask 它们之间的关系图,如下: public interface RunnableFuture<V> e...原创 2019-09-09 22:07:39 · 441 阅读 · 0 评论 -
深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)源代码下载
http://www.hzcourse.com/web/refbook/detail/5070/208原创 2019-09-10 21:09:18 · 237 阅读 · 0 评论 -
linux jdk 安装
1、https://www.oracle.com/technetwork/java/javase/downloads/index.html下载需要的jdk版本,要求登录2、将下载好的版本传到指定位置3、执行tar -zxvfjdk-8u221-linux-x64.tar.gz 将文件解压4、vi /etc/profile 在文件末尾添加export JAVA_HO...原创 2019-09-21 13:57:56 · 153 阅读 · 0 评论 -
java ConcurrentHashMap的实现及原理
本文是咕泡学院的上课笔记,如果你喜欢欢迎加入1、在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。2、HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。3、为了解决上述问题ConcurrentHashMap应用而生jdk1.7采...原创 2019-08-28 01:00:30 · 656 阅读 · 0 评论 -
java Exchanger 线程间交换数据
《java并发编程的艺术》8.4 线程间交换数据的ExchangerExchanger(交换者)是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交换。它提供一个同步点,在这个同步点,两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据,如果第一个线程先执行exchange()方法,它会一直等待第二个线程也执行exchange方法,当两个线程都到达同步...原创 2019-08-21 23:42:23 · 211 阅读 · 0 评论 -
java 项目oracle数据源 连接中的坑ORA-12505, TNS:listener does not currently know of SID given in connect descri
一般java 项目用ssh或ssm 都是通过spring配置文件连接数据源,个人在项目中一般采用<bean id="test" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" valu...原创 2018-08-08 23:35:36 · 822 阅读 · 0 评论 -
CountDownLatch 使用学习
CountDownLatch类是在java.util.concurrent包下,众所周知该包是并发编程最常用的包,CountDownLatch通过简单的计数来保证达到同步的效果,通过CountDownLatch的数量来控制,当CountDownLatch的数量为0时都会续约执行,否则就通过await()方法一直等待,也可以调用带参数的await方法,该方法表示在一定时间了所有的线程还没有执行完成...原创 2018-10-18 00:13:55 · 161 阅读 · 0 评论 -
java CyclicBarrier
CyclicBarrier api的描述如下,* A synchronization aid that allows a set of threads to all wait for* each other to reach a common barrier point. CyclicBarriers are* useful in programs involving a fixe...原创 2018-10-23 23:18:48 · 133 阅读 · 0 评论 -
java思想第四版pdf和源码下载
感谢JAVA思想作者的无私奉献。百度链接https://pan.baidu.com/s/1Lsx9uICKOLriyoMDIqk_2A提取码:2ts5文档中有两分事例其中一份是java编写,也可自行到作者网站下载 https://www.mindviewllc.com/quicklinks/ ...原创 2019-01-20 19:52:32 · 663 阅读 · 0 评论 -
java PipedOutpuStream PipedInputStream 管道输入/输出流
管道输入/输出流和普通的文件输入/输出注或者网络输入/输出流不同之处在于,它主要用于线程之间的数据传输,而传输的媒介为内存。对于Piped类型的流,必须先要进行绑定,也就是调用connect()方法,如果没有将输入/输出流绑定起来,对于该流的访问将会抛出异常。import java.io.IOException;import java.io.PipedReader;import j...原创 2019-08-06 22:57:08 · 233 阅读 · 0 评论 -
Condition使用及原理
synchronized notifylock/Condition 实现类似 synchronized与notify/notifyall waitCondition 示例新建3个类WaitCondition、NotifyCondition、Testpackage condition;import java.util.concurrent.locks.Condition;i...原创 2019-08-19 23:31:26 · 233 阅读 · 0 评论 -
ReentrantReadWriteLock使用
ReentrantReadWriteLock下图来源《Java并发编程的艺术》一书锁在同一时刻只允许一个线程进行访问,而读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升。一般情况下,读写锁的性能都会比排它锁好,因为大多数场景读是多于写的。在读多...原创 2019-08-20 23:42:35 · 184 阅读 · 0 评论 -
Java Semaphore 使用
Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。多年以来,我都觉得从字面上很难理解Semaphore所表达的含义,只能把它比作是控制流量的红绿灯。比如××马路要限制流量,只允许同时有一百辆车在这条路上行使,其他的都必须在路口等待,所以前一百辆车会看到绿灯,可以开进这条马路,后面的车会看到红灯,不能驶入××马路,但是如果...原创 2019-08-21 23:29:09 · 152 阅读 · 0 评论 -
java 快速复制文件,移动文件
1、File 类的renameTo方法,只移动文件,移动后源目录没有文件File file = new File(srcFilePath+srcFileName); File targetFile =new File(realFile); if(!targetFile.getParentFile().exists()) { ...原创 2018-08-07 23:34:12 · 2713 阅读 · 0 评论
分享