花费 24 ms
创建线程的几种方式

编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有四种方法,Thread,Runnable,Callable,使用Executor框架来创建线程池。 Runnable和Cal ...

Wed Oct 25 18:23:00 CST 2017 2 20830
同步方法、同步代码块、volidate变量的使用

当多个线程涉及到共享数据的时候,就会设计到线程安全的问题。非线程安全其实会在多个线程对同一个对象中的实例变量进行并发访问时发生,产生的后果就是“脏读”。发生脏读,就是取到的数据已经被其他的线程改过了。 ...

Fri Aug 18 01:46:00 CST 2017 0 5663
Guava的RateLimiter在单机限流中的正确用法

错误使用 在实现限流时,网上的各种文章基本都会提到Guava的RateLimiter,用于实现单机的限流,并给出类似的代码: 可是上面的代码真的能限流吗? 首先,从代码逻辑角度来讲,方法在每 ...

Wed Jul 04 02:35:00 CST 2018 0 1808
volatile修饰数组

之前读CHM的源码(JDK8),其中有一段印象比较深,它内部有一个Node数组,volatile修饰, transient volatile Node<K,V>[] table; 。而No ...

Wed Jun 09 09:13:00 CST 2021 0 2138
volatile实现之缓存锁定

问题引出: voliatile能保证数据的可见行与有序性,其实现基于两条原则: Lock前缀指令会引起处理器缓存会写到内存。 一个处理器的缓存回写到内存会导致其他处理器的缓存无效, ...

Sat Apr 03 00:36:00 CST 2021 0 234

 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM