- 博客(6)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 java中的移位操作
文章目录一、左移 <<二、右移1、有符号右移 >>2、无符号右移三、补充一、左移 <<向左移动,高位丢弃,低位用0补齐不溢出的情况下num<<1相当于num*2例如 int i = Integer.MIN_VALUE; System.out.println(Integer.toBinaryString(i)); // 10000000000000000000000000000000 Sys
2021-02-13 18:09:31 1321 6
原创 使用CompletableFuture
文章目录一、基本使用二、串行执行三、CompletableFuture实现复杂的并行一、基本使用从Java 8开始引入了CompletableFuture,它针对Future做了改进,可以传入回调对象,当异步任务完成或者发生异常时,自动调用回调对象的回调方法。/** * CompletableFuture基本使用 * * 异步获取股票价格 */public class CompletableFutureTests1 { public static void main(Strin
2021-02-02 00:36:45 152 1
原创 使用Future
如果要获取异步执行的结果,我们需要用到Callable(对应Runnable)和Future/** * 使用Future获取异步执行的结果 */public class FutureTests { public static void main(String[] args) throws ExecutionException, InterruptedException { ExecutorService es = Executors.newFixedThreadPool(.
2021-02-02 00:14:19 142
原创 使用线程池
文章目录一、ExecutorService二、ScheduledThreadPoolFixedRate和FixedDelay的区别。一、ExecutorServicepublic class ThreadPoolTests { public static void main(String[] args) { // 创建一个固定大小的线程池(4) ExecutorService es = Executors.newFixedThreadPool(4);
2021-02-01 23:30:42 253 1
原创 ReentrantLock使用
一、替代synchronized进行同步public class ReentrantLockTests { private final Lock lock = new ReentrantLock(); private int count; /** * 使用lock */ public void add1(int n) { lock.lock(); try { count += n;
2021-02-01 22:39:01 2584
原创 名词解释
临界区(Critical Section)一段被加锁的代码块,任何时候临界区最多只有一个线程能执行。线程安全(thread-safe)如果一个类被设计为允许多线程正确访问,我们就说这个类就是“线程安全”的一些线程安全的类:1、Java标准库的java.lang.StringBuffer也是线程安全的2、 还有一些不变类,例如String,Integer,LocalDate,它们的所有成员变量都是final,多线程同时访问时只能读不能写,这些不变类也是线程安全的。3、类似Math这.
2021-02-01 00:12:32 137
为什么这个没有数据竞争(输出一直都是200)
2021-09-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人