Java基础
文章平均质量分 69
看不尽的结构
这个作者很懒,什么都没留下…
展开
-
分布式、高并发、多线程和高可用的区别与联系
分布式、高并发、多线程和高可用的区别与联系分布式分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。 该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。从理念上讲,分布式的实现有两种形式:水平扩展: 当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供相当的服务;垂直拆分: 前端有多种查询需求时,一台机器扛不原创 2021-03-05 16:18:22 · 728 阅读 · 1 评论 -
数据库幂等性的实现方法
数据库幂等性的实现方法使用数据库实现幂等性的方法有三种:通过悲观锁来实现幂等性通过唯一索引来实现幂等性通过乐观锁来实现幂等性接下来我们分别来看这些实现方式的具体执行过程。① 悲观锁使用悲观锁实现幂等性,一般是配合事务一起来实现,在没有使用悲观锁时,我们通常的执行过程是这样的,首先来判断数据的状态,执行 SQL 如下:select status from table_name where id='xxx';然后再进行添加操作:insert into table_name (id) v原创 2021-03-03 10:51:04 · 2614 阅读 · 0 评论 -
主内存和工作内存的关系?
主内存和工作内存的关系?CPU 有多级缓存,导致读的数据过期由于 CPU 的处理速度很快,相比之下,内存的速度就显得很慢,所以为了提高 CPU 的整体运行效率,减少空闲时间,在 CPU 和内存之间会有 cache 层,也就是缓存层的存在。虽然缓存的容量比内存小,但是缓存的速度却比内存的速度要快得多,其中 L1 缓存的速度仅次于寄存器的速度。结构示意图如下所示:在图中,从下往上分别是内存,L3 缓存、L2 缓存、L1 缓存,寄存器,然后最上层是 CPU 的 4个核心。从内存,到 L3 缓存,再到 L2原创 2021-03-02 14:52:38 · 746 阅读 · 0 评论 -
线程在六种状态之间的转换
线程在六种状态之间的转换New(新创建)New 表示线程被创建但尚未启动的状态:当用 new Thread() 新建一个线程时,如果线程没有开始运行 start() 方法,所以也没有开始执行 run() 方法里面的代码,那么此时它的状态就是 New。而一旦线程调用了 start(),它的状态就会从 New 变成 Runnable。Runnable(可运行)Java 中的 Runable 状态对应操作系统线程状态中的两种状态,分别是 Running 和 Ready,也就是说,Java 中处于 Runn原创 2021-02-02 10:50:52 · 249 阅读 · 0 评论 -
实现线程的方法追更溯源只有一种
实现线程的方法追更溯源只有一种实现 Runnable 接口第一种方式是通过实现 Runnable 接口实现多线程,首先通过 RunnableThread 类实现 Runnable 接口,然后重写 run() 方法,之后只需要把这个实现了 run() 方法的实例传到 Thread 类中就可以实现多线程。继承 Thread 类第二种方式是继承 Thread 类,如代码所示,与第一种方式不同的是它没有实现接口,而是继承 Thread 类,并重写了其中的 run() 方法。线程池创建线程对于线程池而言,原创 2021-02-01 09:57:44 · 84 阅读 · 0 评论