JUC
文章平均质量分 57
HelloWorld. py
后端敲门人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JUC-ThreadLocal
ThreadLocal 保存线程变量,保证了每个线程的变量不会相互干扰。原创 2024-10-13 13:58:42 · 394 阅读 · 0 评论 -
JUC-CompletableFuture
CompletableFuture.allOf() 可以用于等待所有任务完成,thenCombine() 和 thenCompose() 可以将多个异步任务的结果合并。使用 thenApply()、thenAccept() 和 thenRun() 方法,可以将多个任务串联起来进行顺序执行,实现异步任务的链式处理。接口在获取结果时,如果任务未完成,会阻塞,直到任务完成,或超时。当任务完成时,应用指定的函数对结果进行转换,并返回一个新的。任务完成时,执行指定的动作,对结果进行消费,无返回值。原创 2024-10-10 22:58:00 · 908 阅读 · 0 评论 -
JUC-Fork Join 框架
框架是 Java 7 中提供的并行执行框架。原创 2024-10-10 22:23:30 · 237 阅读 · 0 评论 -
线程安全-原子性,可见性,有序性
在并发时,程序的执行可能会出现乱序。给人的直观感觉就是:写在前面的代码,会在后面执行,这是因为高并发场景下,多个线程共同进入到同一块代码逻辑中造成的。每个线程都有自己的工作内存,线程在执行操作时,会将共享变量读入到自己的工作内存中,从而导致了贡献变量在线程之间的不可见。可以保证同步代码块在同一时间内只有一个线程能够进入,因此也能保证一定的有序性。但是它不能禁止指令重排序。主要是通过在编译是,在指令序列中添加内存屏障实现的。一组操作要执行就都执行,不执行就都不执行。共享变量的修改对所有线程可见。原创 2024-10-09 22:13:19 · 463 阅读 · 0 评论 -
JUC-ReentrantLock 锁粒度为什么更小
ReentrantLock 可以通过构造方法传参,设置为公平锁,就会按照线程的请求顺序获得锁,先到先得。synchronized 中的线程一旦进入阻塞状态,除非锁被释放,否则无法中断退出。ReentrantLock 可以选择在等待锁的时候中断退出,而不必一直等待锁释放。在一定时间内如果没有获取锁,就会放弃锁的竞争,而不必一直等待。可以在不阻塞的情况下获得锁,通过。原创 2024-10-07 20:13:29 · 441 阅读 · 0 评论
分享