首页
友情链接
智能助手
智能助手
归档
瞬间
小程序&公众号
小程序
公众号
Login
Menu
首页
友情链接
智能助手
智能助手
归档
瞬间
小程序&公众号
小程序
公众号
青云博客
记录、分享
Archives
2024 / 04
说下CAS的原理
2024-04-22
Java
#java
CAS(Compare And Swap)是一种乐观的并发控制机制,它的核心原理是基于硬件层面的原子性保证。CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。它的工作原理是: 在将新值写入内存之前,CAS操作会先比较内存位置的值是否与预期原值相匹配。 如果内存位置的值与预期原值
如何停止一个正在运行的线程
2024-04-22
Java
#java
要停止一个正在运行的线程,通常有几种方法,但需要根据具体情况选择适当的方式,因为线程的停止涉及到线程安全和资源释放等问题。以下是一些常用的停止线程的方法: 使用标志位: 在线程的执行体中使用一个标志位,当该标志位为true时,线程会自行退出执行。这是一种比较安全和可控的方式。例如: public c
说说你对JMM内存模型的理解
2024-04-22
Java
#java
Java内存模型(JMM)是一种抽象的概念,用于描述在Java程序中,一组线程如何通过共享内存进行交互。JMM并不真实存在,它是一种规范,规定了程序中变量在内存中的访问方式。 在JMM中,内存主要划分为两种类型:主内存和工作内存。主内存存储了所有的对象实例和静态变量,而工作内存存储了每个线程的局部变
什么是不可变对象,对写并发有什么帮助
2024-04-22
Java
#java
不可变对象(Immutable object)是一种一旦创建后其状态就不能被修改的对象。在Java中,不可变对象包括String、基本类型的包装类(如Integer、Double等)等。 不可变对象对写并发有如下帮助: 线程安全:不可变对象是线程安全的,因为它们不会被其他线程修改。因此,多个线程可以
说下对AQS的理解
2024-04-22
Java
#java
AQS(AbstractQueuedSynchronizer)是Java并发编程中的一个重要组件,它是一个抽象类,提供了线程同步的底层实现机制。AQS的作用是实现线程的同步和互斥操作,它提供了两种主要的锁机制,分别是排他锁和共享锁。 排他锁也称为独占锁,在多个线程竞争同一共享资源时,同一时刻只允许一
什么是可重入锁
2024-04-22
Java
#java
可重入锁可以简单理解为一个可以重复获取的锁,就像拿钥匙开锁一样,你可以反复用同一把钥匙开锁。这种锁在同一线程内是安全的,因为它可以被同一线程多次获取,而不会产生不一致的状态。 举个例子,假设有一个线程A在执行一个方法,同时这个方法内部又调用另一个方法,那么线程A可以重复获取同一个锁,而不会出现死锁的
如何确保线程安全
2024-04-22
Java
#java
确保线程安全可以通过多种方法和技术来实现。以下是一些常用的方法: 使用synchronized关键字:synchronized关键字可以确保同一时刻只有一个线程可以执行某个代码块,从而避免了多个线程同时访问和修改共享资源的问题。 使用Atomic类:Java提供了多个原子类,如AtomicInteg
锁的优化机制了解吗
2024-04-22
Java
#java
是的,锁的优化机制是Java等编程语言中常见的一种提高并发性能的方法。锁的优化旨在减少锁的竞争,从而提高程序的性能。以下是一些常见的锁优化机制: 偏向锁(Biased Locking):偏向锁是一种针对无竞争情况的锁优化机制。它通过消除无谓的获取锁和释放锁的操作,提高了程序的性能。偏向锁会记录哪个线
有三个线程T1,T2,T3,如何保证顺序执行
2024-04-22
Java
#java
确保三个线程 T1、T2、T3 按照指定顺序执行有多种方式。以下是其中一些常见的方式: 使用 join() 方法: 可以在每个线程内部使用 join() 方法来等待前一个线程执行完成。具体操作是在线程 T2 的 run() 方法中调用 T1.join(),在线程 T3 的 run() 方法中调用 T
为什么 wait 和 notify 方法要在同步块中调用
2024-04-22
Java
#java
当使用 wait() 和 notify() 方法时,需要将它们放在同步块内,这是因为: 互斥性: 多线程环境下,我们希望在同一时刻只有一个线程能够执行 wait()、notify() 或 notifyAll() 方法。使用同步块(synchronized)提供了这种互斥性,避免多线程并发修改的问题。
Previous
1 / 53
2 / 53
3 / 53
4 / 53
5 / 53
6 / 53
7 / 53
8 / 53
9 / 53
10 / 53
11 / 53
12 / 53
13 / 53
14 / 53
15 / 53
16 / 53
17 / 53
18 / 53
19 / 53
20 / 53
21 / 53
22 / 53
23 / 53
24 / 53
25 / 53
26 / 53
27 / 53
28 / 53
29 / 53
30 / 53
31 / 53
32 / 53
33 / 53
34 / 53
35 / 53
36 / 53
37 / 53
38 / 53
39 / 53
40 / 53
41 / 53
42 / 53
43 / 53
44 / 53
45 / 53
46 / 53
47 / 53
48 / 53
49 / 53
50 / 53
51 / 53
52 / 53
53 / 53
Next