JavaSE
文章平均质量分 73
warybee
有的鱼是永远关不住的,因为它们属于天空
展开
-
并发编程中原子性、可见性、有序性问题源头
在单核时代,所有的线程都是在一颗 CPU 上执行,CPU 缓存与内存的数据一致性容易解决。因为所有线程都是操作同一个 CPU 的缓存,一个线程对缓存的写,对另外一个线程来说一定是可见的。例如在下面的图中,线程 A 和线程 B 都是操作同一个 CPU 里面的缓存,所以线程 A 更新了变量 V 的值,那么线程 B 之后再访问变量 V,得到的一定是 V 的最新值(线程 A 写过的值)。原创 2022-02-07 16:23:32 · 429 阅读 · 0 评论 -
Java汇编工具 AsmTools的使用
AsmTools 是一组用于创建和解构 Java 类文件的程序,简单来说就是可以把java生成的class文件,生成汇编代码,然后再生成class原创 2022-01-17 20:37:25 · 841 阅读 · 0 评论 -
Java并发工具Exchanger线程间交换数据
Exchanger是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交 换原创 2022-01-13 17:40:33 · 521 阅读 · 0 评论 -
Java并发工具CyclicBarrier使用详解
CyclicBarrier是一个同步器,允许一组线程相互之间等待,直到到达某个公共屏障点 (common barrier point),再继续执行。因为`CyclicBarrier` 的计数器是可以循环利用的,所以称它为循环(Cyclic) 的 Barrier。CyclicBarrier常用于多线程计算数据,当所有线程都完成执行后,在`CyclicBarrier`回调线程中合并计算。原创 2022-01-13 11:22:12 · 906 阅读 · 1 评论 -
Java并发工具CountDownLatch使用详解
通过使用 CountDownLatch可以使当前线程阻塞,等待其他线程完成给定任务。可以类比旅游团导游要等待所有的游客到齐后才能去下一个景点。CountDownLatch主要应用场景:一个线程等待多个线程完成给定任务后,然后执行后续的操作的场景。原创 2022-01-12 18:36:37 · 14242 阅读 · 0 评论 -
Java集合HashMap的6种遍历方式
1 Foreach entrySet方式 @Test public void test1(){ HashMap<Integer,String> languages=new HashMap<>(); languages.put(1,"java"); languages.put(2,"C#"); languages.put(3,"javascript"); languages.p原创 2022-01-06 14:06:34 · 242 阅读 · 0 评论 -
Java反射
21 反射基本用法1.1 常用接口public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { Properties properties=new Properties(); prope原创 2021-09-16 10:56:20 · 104 阅读 · 0 评论 -
Java Semaphore详解
本文目录1、介绍2、主要方法3、Semaphore登录限流示例1、介绍Semaphore(信号量)是用来控制同时访问特定资源的线程数量,通过协调各个线程以保证合理地使用公共资源。Semaphore通过使用计数器来控制对共享资源的访问。 如果计数器大于0,则允许访问。 如果为0,则拒绝访问。 计数器所计数的是允许访问共享资源的许可。 因此,要访问资源,必须从信号量中授予线程许可。2、主要方法void acquire() :从信号量获取一个许可,如果无可用许可前将一直阻塞等待,void ac原创 2020-12-17 16:23:00 · 11266 阅读 · 5 评论 -
Java CountDownLatch介绍
本文目录1、CountDownLatch介绍2、CountDownLatch主要方法1、CountDownLatch介绍CountDownLatch(同步工具类)允许一个或多个线程等待其他线程完成操作。在使用CountDownLatch 时,需要指定一个整数值,此值是线程将要等待的操作数。当某个线程为了要执行这些操作而等待时,需要调用 await 方法。await 方法让线程进入休眠状态直到所有等待的操作完成为止。当等待的某个操作执行完成,它使用 countDown 方法来减少 CountDownLa原创 2020-12-16 16:23:31 · 317 阅读 · 0 评论 -
一文搞懂java中的volatile关键字
本来想写一篇关于Volatile的文章,这里发现了一篇不错的章。原文地址:https://www.cnblogs.com/dolphin0520/p/3920373.html原创 2020-12-16 15:23:21 · 116 阅读 · 0 评论 -
Java8 Stream详解
测试实体类public class User { private String id; private String name; private Integer age; private Integer sex; public User() { } public User(String id, String name,...原创 2019-11-13 10:16:50 · 221 阅读 · 0 评论 -
Java内部类总结
内部类介绍 可将一个类定义在另一个类定义中。这就叫作“内部类”。–《Think In Java》内部类是Java中非常有用的特性,但是又比较难理解,Java中引入内部类的意义内部类可以实现多继承;实现事件驱动,用来开发GUI的Java Swing使用了大量内部类,主要用来响应各种事件;列表内容成员内部类成员内部类是最普通的内部类,它作为外部类的一个成员存在,定义形式如下:public原创 2016-05-27 16:25:08 · 252 阅读 · 0 评论 -
Java数组详解
数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。原创 2016-05-26 22:29:08 · 432 阅读 · 0 评论