随笔分类 -  Java

摘要:上一文介绍中,我们详述了网络数据包的接收和发送过程,并通过介绍5中IO模型了解了内核是如何读取网络数据并通知给用户线程的。 前面的内容都是以内核空间的视角来剖析网络数据的收发模型,本小节我们站在用户空间的视角来看一下如何对网络数据进行收发。 相对内核来讲,用户空间的IO线程模型相对简单一些。这些用户 阅读全文
posted @ 2022-03-20 16:49 钟齐峰 阅读(219) 评论(0) 推荐(0) 编辑
摘要:在内存系统重排序可知,写缓存没有及时刷新到内存,导致不同处理器缓存的值不一样,目前处理器都遵循缓存一致性协议能保证足够的可见性又不过多的损失性能。缓存一致性协议给缓存行(通常为64字节)定义了4个状态:独占(exclusive)、共享(share)、修改(modified)、失效(invalid), 阅读全文
posted @ 2021-06-17 13:32 钟齐峰 阅读(213) 评论(0) 推荐(0) 编辑
摘要:1、概念 volatile是Java中的关键字,用来修饰会被不同线程访问和修改的变量。JMM(Java内存模型)是围绕并发过程中如何处理可见性、原子性和有序性这3个特征建立起来的,而volatile可以保证其中的两个特性。 2、Java内存模型的3个特性 1)可见性 可见性是一种复杂的属性,因为可见 阅读全文
posted @ 2021-05-18 12:13 钟齐峰 阅读(43182) 评论(3) 推荐(8) 编辑
摘要:1、创建线程 Java中创建线程主要有三种方式: 继承Thread类创建线程类: 定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此也把run方法称为执行体。 创建Thread子类实例,即创建了线程对象。 调用线程对象的start方法开启该线程。 / 阅读全文
posted @ 2021-05-17 16:36 钟齐峰 阅读(450) 评论(0) 推荐(2) 编辑
摘要:编译环境:windows10+Idea+x86 CPU。 1、CPU Cache CPU 访问内存时,首先查询 cache 是否已缓存该数据。如果有,则返回数据,无需访问内存;如果不存在,则需把数据从内存中载入 cache,最后返回给理器。在处理器看来,缓存是一个透明部件,旨在提高处理器访问内存的速 阅读全文
posted @ 2021-05-13 17:50 钟齐峰 阅读(1777) 评论(0) 推荐(1) 编辑
摘要:1、概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java 阅读全文
posted @ 2021-05-13 15:23 钟齐峰 阅读(75) 评论(0) 推荐(0) 编辑
摘要:1、注解的本质 在注解使用之前,Java各大框架(Spring,Hibernate等)使用xml来实现其松耦合方式的配置。但是随着项目越来越多,xml内容越来越复杂,维护成本越累越高。因此,业界提出采用一种标记式的高耦合配置方式,叫做注解。开发者可以在方法、类、字段属性等需要配置的地方进行注解。 关 阅读全文
posted @ 2021-04-25 13:53 钟齐峰 阅读(305) 评论(0) 推荐(0) 编辑
摘要:1、Hystrix简介 Hystrix是由Nefflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或第三方库,防止级联失败,从而提升系统的可用性、容错性与局部应用的弹性,是一个实现了超时机制和熔断器模式的工具类库。 2、Hystrix设计原则 防止任何单独的依赖耗尽资源(线程),过载立即切断 阅读全文
posted @ 2021-04-20 10:36 钟齐峰 阅读(995) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示