JAVA
文章平均质量分 87
UareThinkingPeach
这个作者很懒,什么都没留下…
展开
-
五、Kafka,构建TB级异步消息系统
五、Kafka,构建TB级异步消息系统5.1、阻塞队列代码演示:public class BlockingQueueTests { public static void main(String[] args){ BlockingQueue queue = new ArrayBlockingQueue(10); new Thread(new Producer(queue)).start(); //一个生产者生产数据,三个消费者同时并发地消费数据原创 2021-07-01 08:55:09 · 259 阅读 · 0 评论 -
四、Redis,一站式高性能存储方案
四、Redis,一站式高性能存储方案4.1、spring整合redis导入依赖:spring-boot-starter-data-redis <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>配置re原创 2021-07-01 08:49:52 · 203 阅读 · 0 评论 -
JMM:Java内存模型
五、JMM:Java内存模型(1)什么是JMM?Java 内存模型是一种规范,定义了很多东西:所有的变量都存储在主内存(Main Memory)中。每个线程都有一个私有的本地内存(Local Memory),本地内存中存储了该线程以读/写共享变量的拷贝副本。线程对变量的所有操作都必须在本地内存中进行,而不能直接读写主内存。不同的线程之间无法直接访问对方本地内存中的变量。JMM:JAVA内存模型,不存在的东西,是一个概念,也是一个约定!JMM主要是为了规定了线程和内存之间的一些关系,是深入原创 2021-06-30 19:29:26 · 106 阅读 · 0 评论 -
抽象和接口类
抽象和接口类抽象类抽象方法 : 没有方法体的方法。抽象类:包含抽象方法的类。public abstract calss Animal{ public abstract void eat();}不能直接new抽象类方法必须用一个子类来继承extents抽象父类继承抽象类的子类必须重写父类所有的抽象方法。抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。接口类 public interface 接口名称 { //1. 抽象方法 public a原创 2021-06-21 10:51:05 · 53 阅读 · 0 评论 -
三、开发社区核心功能
三、开发社区核心功能3.1、过滤敏感词(前缀树)什么 是前缀树?参考LeetCode 208. 实现 Trie (前缀树)在resource下定义一个敏感词文件sensitive-words.txt在util工具类中定义敏感词过滤工具类SensitiveFilter.java:(1) 定义前缀树 : // 前缀树 private class TrieNode { // 关键词结束标识 private boolean isKeywo原创 2021-06-16 09:10:12 · 125 阅读 · 0 评论 -
线程池:三大方式、七大参数、四种拒绝策略
线程池线程池:三大方式、七大参数、四种拒绝策略池化技术程序的运行,本质:占用系统的资源!我们需要去优化资源的使用 ===> 池化技术线程池、JDBC的连接池、内存池、对象池 等等。。。。资源的创建、销毁十分消耗资源池化技术:事先准备好一些资源,如果有人要用,就来我这里拿,用完之后还给我,以此来提高效率。(1)线程池的好处:1、降低资源的消耗;2、提高响应的速度;3、方便管理;线程复用、可以控制最大并发数、管理线程(2)线程池:三大方法ExecutorService th原创 2021-06-15 16:34:22 · 175 阅读 · 0 评论 -
悲观锁、乐观锁、自旋锁
18)悲观锁、乐观锁、自旋锁(1)乐观锁乐观锁是一种乐观的思想,即认为读多写少,遇到并发的可能性低,每次拿数据时都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用 版本号机制 和 CAS 算法实现。Java 中的乐观锁基本都是通过 CAS 操作实现的,CAS 是一种更新的原子操作,比较当前值跟传入值是否一样,一样则更新,否则失败。–>缺点:ABA问题:CAS 会导致 “ABA 问题”。CAS 算法实现的一个重要前提是需要取出内存中某时原创 2021-06-15 16:05:53 · 222 阅读 · 0 评论 -
多线程的基础
多线程基础一、并发与并行的区别:**并发:**多线程操作同一个资源。CPU 只有一核,模拟出来多条线程,天下武功,唯快不破。那么我们就可以使用CPU快速交替,来模拟多线程。并发编程的本质:充分利用CPU的资源!并行: 多个人一起行走CPU多核,多个线程可以同时执行。 我们可以使用线程池!多线程的内存图:二、线程的状态:1)new新建状态2)block阻塞3)runnable运行4)terminated死亡5)sleep休眠6)waiting无线等待wait/sle原创 2021-06-15 16:01:49 · 1123 阅读 · 1 评论 -
进程与线程
进程与线程进程是操作系统中的应用程序、是资源分配的基本单位,线程是用来执行具体的任务和功能,是CPU调度和分派的最小单位一个进程往往可以包含多个线程,至少包含一个一、进程的的概念引用线程之前进程的概念:进程是表示资源分配的基本单位,也是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括内存空间、磁盘空间、I/O设备等。然后,把该进程放入进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。3原创 2021-06-15 15:58:14 · 484 阅读 · 0 评论