多线程
文章平均质量分 96
多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。
爱写bug的小刘
这个作者很懒,什么都没留下…
展开
-
6、JUC并发同步工具类应用与实战
ReentrantLock的应用场景主要体现在多线程环境下对共享资源的独占式访问,以保证数据的一致性和安全性。ReentrantLock具体应用场景如下:1.解决多线程竞争资源的问题,例如多个线程同时对同一个数据库进行写操作,可以使用ReentrantLock保证每次只有一个线程能够写入。2.实现多线程任务的顺序执行,例如在一个线程执行完某个任务后,再让另一个线程执行任务。3.实现多线程等待/通知机制,例如在某个线程执行完某个任务后,通知其他线程继续执行任务。原创 2024-08-21 10:08:55 · 765 阅读 · 0 评论 -
5、并发锁机制之synchronized
批量重偏向和批量撤销是针对类的优化,和对象无关。偏向锁重偏向一次之后不可再次重偏向。当某个类已经触发批量撤销机制后,JVM会默认当前类产生了严重的问题,剥夺了该类的新实例对象使用偏向锁的权利。原创 2024-08-21 10:07:21 · 700 阅读 · 0 评论 -
4、CAS和Atomic详解
CAS(Compare And Swap,比较与交换),是非阻塞同步的实现原理,它是CPU硬件层面的一种指令,从CPU层面能保证"比较与交换"两个操作的原子性。CAS指令操作包括三个参数:内存值(内存地址值)V、预期值E、新值N,当CAS指令执行时,当且仅当预期值E和内存值V相同时,才更新内存值为N,否则就不执行更新,无论更新与否都会返回否会返回旧的内存值V,上述的处理过程是一个原子操作。// 内存中当前的值/*** @param expectedValue 期望值。原创 2024-08-20 09:48:27 · 690 阅读 · 0 评论 -
3、ThreadLocal详解
Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。特性:1.线程安全: 在多线程并发的场景下保证线程安全;2.传递数据: 我们可以通过ThreadLocal在同一线程,不同组件中传递公共变量;3.线程隔离: 每个线程的变量都是独立的,不会互相影响;原创 2024-08-20 09:47:22 · 666 阅读 · 0 评论 -
2、Future与CompletableFuture实战
直接继承Thread或者实现Runnable接口都可以创建线程,但是这两种方法都有一个问题就是:没有返回值,也就是不能获取执行完的结果。因此java1.5就提供了Callable接口来实现这一场景,而Future和FutureTask就可以和Callable接口配合起来使用。不能返回一个返回值;不能抛出checked Exception;Callable的call方法可以有返回值,可以声明抛出异常。原创 2024-08-19 14:06:30 · 561 阅读 · 0 评论 -
1、从0开始深入理解并发、线程与等待通知机制
线程之间相互配合,完成某项工作,比如:一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,而最终执行又是另一个线程。join可以理解成是线程合并,当在一个线程调用另一个线程的join方法时,当前线程阻塞等待被调用join方法的线程执行完毕才能继续执行,所以join的好处能够保证线程的执行顺序,但是如果调用线程的join方法其实已经失去了并行的意义,虽然存在多个线程,但是本质上还是串行的,最后join的实现其实是基于等待通知机制的。原创 2024-08-19 14:02:55 · 758 阅读 · 0 评论