-
线程池中submit()和execute()方法有什么区别?
execute() 参数 Runnable ;submit() 参数 (Runnable) 或 (Runnable 和 结果 T) 或 (Callable)execute() 没有返回值;而 submit() 有返回值submit() 的返回值 Future 调用get方法时,可以捕获处理异常...- 盾给网
- 0
- 0
- 294
-
乐观锁与悲观锁是什么?
悲观锁(Pessimistic Lock):线程每次在处理共享数据时都会上锁,其他线程想处理数据就会阻塞直到获得锁。乐观锁(Optimistic Lock):线程每次在处理共享数据时都不会上锁,在更新时会通过数据的版本号等机制判断其他....- 盾给网
- 0
- 0
- 276
-
Runnable和Callable有什么区别?
主要区别Runnable 接口 run 方法无返回值;Callable 接口 call 方法有返回值,支持泛型Runnable 接口 run 方法只能抛出运行时异常,且无法捕获处理;Callable 接口 call 方法允许抛出异常,可以获取异常信息测试代....- 盾给网
- 0
- 0
- 339
-
sleep()和wait()有什么区别?
sleep() 是 Thread 类的静态本地方法;wait() 是Object类的成员本地方法sleep() 方法可以在任何地方使用;wait() 方法则只能在同步方法或同步代码块中使用,否则抛出异常Exception in thread "Thread-0" ....- 盾给网
- 0
- 0
- 307
-
如何优雅地停止一个线程?
线程终止有两种情况:线程的任务执行完成线程在执行任务过程中发生异常这两者属于线程自行终止,如何让线程 A 把线程 B 终止呢?Java 中 Thread 类有一个 stop() 方法,可以终止线程,不过这个方法会让线程直接终止....- 盾给网
- 0
- 0
- 308
-
锁如何使用?有什么注意事项?
Java 中常见的锁有 synchronized可重入锁 java.util.concurrent.lock.ReentrantLock可重复读写锁 java.uti....- 盾给网
- 0
- 0
- 310
-
什么是 happens-before 原则?
Java 中happens-before 原则,是在 JSR-133 中提出的。原文摘要:• Each action in a thread happens-before every subsequent action in that thread.• An unlock on a monitor happens-before every su....- 盾给网
- 0
- 0
- 317
-
Java中的锁是什么?
在并发编程中,经常会遇到多个线程访问同一个共享变量,当同时对共享变量进行读写操作时,就会产生数据不一致的情况。为了解决这个问题JDK 1.5 之前,使用 synchronized 关键字,拿到 Java 对象的锁,保护锁定的代....- 盾给网
- 0
- 0
- 300
-
什么是 Java 内存模型?
在了解什么是 Java 内存模型之前,先了解一下为什么要提出Java 内存模型。之前提到过并发编程有三大问题CPU 缓存,在多核 CPU 的情况下,带来了可见性问题操作系统对当前执行线程的切换,带来了原子性问题译器指令....- 盾给网
- 0
- 0
- 363
-
导致并发程序出问题的根本原因是什么?
CPU、内存、IO 设备的读写速度差异巨大,表现为 CPU 的速度 >内存的速度 > IO 设备的速度。 程序的性能瓶颈在于速度最慢的 IO 设备的读写,也就是说当涉及到 IO 设备的读写,再怎么提升 CPU 和内存的速度....- 盾给网
- 0
- 0
- 394
-
volatile关键字的作用是什么?
Java 中volatile 关键字是一个类型修饰符。JDK 1.5 之后,对其语义进行了增强。 保证了不同线程对共享变量进行操作时的可见性,即一个线程修改了共享变量的值,共享变量修改后的值对其他线程立即可见 通过....- 盾给网
- 0
- 0
- 338