Java JUC
文章平均质量分 74
瑾年丶深蓝
这个作者很懒,什么都没留下…
展开
-
获得线程的方式的第三种方式 Callable
Callable接口获得线程继承Thread类和Runnable接口方式实现Callable接口方式FutureTask类源码简介继承Thread类和Runnable接口方式 有两种创建线程的方法-一种是通过创建Thread类,另一种是通过使用Runnable创建线程。 public class MyThread implements Runnable { // 实现 Runnable 接口方式 @Override public void run() {原创 2021-03-16 16:00:33 · 309 阅读 · 0 评论 -
Java 集合框架(List/Set/Map)的线程安全问题
Java 集合框架的线程安全问题List线程安全问题Set线程不安全Map线程安全问题List线程安全问题 1、先来一段代码 @Test public void test() { List<Integer> ints = Arrays.asList(1, 2, 3, 4); ints.forEach(System.out::println); } 上述代码是不存在线程安全问题的,但是在多线程环境中,List下的Array原创 2021-03-08 11:12:49 · 521 阅读 · 2 评论 -
Java 深入理解synchronized锁
深入理解synchronized锁synchronized的特性synchronized的案例synchronized简单解释synchronized的特性 1、原子性:所谓原子性就是指一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 2、可见性:可见性是指多个线程访问一个资源时,该资源的状态、值信息等对于其他线程都是可见的。 3、有序性:有序性值程序执行的顺序按照代码先后执行。 4、可重入性:当一个线程试图操作一个由其他线程持有的对象锁原创 2021-03-07 10:31:04 · 157 阅读 · 1 评论 -
Java 多线程之间的通信
多线程间的通信需求synchronized 实现JUC Lock 实现多线程指定调用顺序需求 一般情况下,一个线程只负责自己的任务,执行完成之后就结束了,但是在多线程中,一个线程的处理有可能会依赖另一个线程的数据,所以是需要线程之间的通信,达到信息同步的目的。 举个栗子:多个线程去操作初始值为0的一个变量,实现一个线程对该变量 +1 另一个线程对该变量 -1,交替打印。 在多线程的编程中,参照:在高内聚低耦合的前提下,线程->操作->资源类的结构去做,这样逻辑清晰一点。原创 2021-03-06 10:44:12 · 238 阅读 · 0 评论