一、安装gcc依赖
由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 。切换到root用户下,执行yum -y install gcc命令:
1 | [root@common soft]# yum install -y gcc |
二、下载并解压安装包
1 | [root@common redis]# wget http://download.redis.io/releases/redis-5.0.3.tar.gz |
dont be shy, just try!
线程池主要解决两个问题:
线程池提供了许多可调参数和可扩展性接口,以满足不同情境的需要。我们可以使用更方便的Executors的工厂方法,比如newCachedThreadPool(线程池线程个数最多可达Integer.MAX_VALUE
,线程自动回收)、newFixedThreadPool(固定大小的线程池)和newSingleThreadExecutor(单个线程)等来创建线程池,用户还可以自定义线程池。
使用AtomicLong时,在高并发下大量线程会同时去竞争更新同一个原子变量,但是由于同时只有一个线程的CAS操作会成功,这就造成了大量线程竞争失败后通过无限循环不断进行自旋尝试CAS的操作,这会浪费CPU资源。
1 | public final long incrementAndGet() { |
因此JDK8新增了一个原子性递增或者递减类LongAdder用来克服在高并发下使用AtomicLong的缺点。