-
[编织消息框架][netty源码分析]3 EventLoop 实现类SingleThreadEventLoop职责与实现
eventLoop是基于事件系统机制,主要技术由线程池同队列组成,是由生产/消费者模型设计,那么先搞清楚谁是生产者,消费者内容 SingleThreadEventLoop 实现 1public abstract class SingleThreadEventLoop extends SingleThreadEventExecutor implements EventLoop { 2 private…- 0
- 0
-
JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制
JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制 一.静态同步函数的锁是class对象 我们在上节验证了同步函数的锁是this,但是对于静态同步函数,你又知道多少呢? 我们做一个这样的小实验,我们给show方法加上static关键字去修饰 1private static synchronized void sh…- 2
- 0
-
JAVA并发编程(二)线程安全性
文章目录 线程安全性 基本概念 三个基本原则 原子性 Atomic * 锁 Lock (依赖特殊的cpu指令) * AQS 简介 * Synchronized (依赖于JVM实现) 1 * 原子性对比 2 3 * 可见性 4 synchronized * volatile 1 * 有序性 2 happens-before原则 线程安全性 基本概念 当多个线程访问某个类时,不管运行时环境采用何种调度…- 1
- 0
-
C#中HashTable的用法
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的k…- 10
- 0
-
Java性能优化(1):用静态方法代替构造函数
对于一个类,为了让客户获得它的一个实例,最通常的方法是提供一个公有的构造函数。实际上还有另外一种技术,尽管较少为人所知,但也应该成为每个程序员的工具箱中的一部分。 类可以提供一个公有的今静态工厂方法。所谓静态工厂方法,实际上只是一个简单的静态方法,它返回的是类的一个实例。下面是来自一个Boolean类的简单例子。其中静态工作方法是1.4版本新增的,它把一个Boolean原语值转换为一个Boolea…- 3
- 0
-
Java虚拟机性能管理神器 – VisualVM(5) 监控远程主机上的JAVA应用程序
Java虚拟机性能管理神器 - VisualVM(5) 监控远程主机上的JAVA应用程序 使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可以在本地对远程主机上的JAVA应用程序进行监控。 1.远程服务器、应用程序配置 1.…- 4
- 0
-
Netty In Action中文版 – 第九章:引导Netty应用程序
Netty In Action中文版 - 第九章:引导Netty应用程序 本章介绍 引导客户端和服务器 从Channel引导客户端 添加多个ChannelHandler 使用通道选项和属性 上一章学习了编写自己的ChannelHandler和编解码器并将它们添加到Channel的ChannelPipeline中。本章将讲解如何将它们结合在一起使用。 Netty提供了简单统一的方法来引导服务器和客户…- 3
- 0
-
Netty系列之Netty线程模型
1. 背景 1.1. Java线程模型的演进 1.1.1. 单线程 时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一。 在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低性能。 1.1.2. 多线程 随着硬件性能的提升,CPU的核数越来越越多,很多服务器标配已经达到32…- 20
- 0
-
JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this
JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this 一.线程的安全性 当我们开启四个窗口(线程)把票陆陆续续的卖完了之后,我们要反思一下,这里面有没有安全隐患呢?在实际情况中,这种事情我们是必须要去考虑安全问题的,那我们模拟一下错误 1package com.lgl.hellojava; 2 3import javax.secu…- 5
- 0
-
Core Java (一) Java白皮书中的关键术语
Java白皮书中的关键术语: 简单性,Java比C++更易学习,Java剔除了C++中很少使用的难以理解的特性,很多语法也与C++相似。 面向对象,现代编程语言几乎都是面向对象的。 网络技能,Java的网络能力强大易用。 健壮性,Java采用指针模型而不是显示指针,可以消除重写内存和损坏数据的可能性。 安全性,Java可以构建防病毒,防篡改的系统,安全性能很高。 体系结构中立,Java编译器生成与…- 0
- 0
-
JVM性能优化系列-(7) 深入了解性能优化
目前已经更新完《Java并发编程》和《Docker教程》,欢迎关注【后端精进之路】,轻松阅读全部文章。 Java并发编程: Java并发编程系列-(1) 并发编程基础 Java并发编程系列-(2) 线程的并发工具类 Java并发编程系列-(3) 原子操作与CAS Java并发编程系列-(4) 显式锁与AQS Java并发编程系列-(5) Java并发容器 Java并发编程系列-(6) Java线程…- 2
- 0
-
Java异步NIO框架Netty实现高性能高并发
RPC包括: 消息的编码、解码、读取和发送; 转自:http://blog.csdn.net/woshisap/article/details/74022825 本文是对上述文章的总结、精简。 2.1. RPC调用的性能模型分析 2.1.1. 传统RPC调用性能差的三宗罪 网络传输方式问题;序列化方式问题;线程模型问题; 2.1.2. 高性能的三个主题 传输;2) 协议;3) 线程 2.2. N…- 11
- 0
-
Java 反射调用的一种优化
写一些Java框架的时候,经常需要通过反射get或者set某个bean的field,比较普通的做法是获取field后调用java.lang.reflect.Field.get(Object),但每次都这样调用,能否有优化的空间呢? 答案是有。 第一种: 由于每次都是重复的调用,所以想到了缓存每个bean的field,但这样做还是不够,所以想到了写一个code gener…- 4
- 0
-
Netty In Action中文版 – 第八章:附带的ChannelHandler和Codec
Netty In Action中文版 - 第八章:附带的ChannelHandler和Codec 本章介绍 使用SSL/TLS创建安全的Netty程序 使用Netty创建HTTP/HTTPS程序 处理空闲连接和超时 解码分隔符和基于长度的协议 写大数据 序列化数据 上一章讲解了如何创建自己的编解码器,我们现在可以用上一章的知识来编写自己的编解码器。不过Netty提供了一些标准的ChannelHan…- 5
- 0
-
Netty系列之Netty高性能之道
1. 背景 \ 1.1. 惊人的性能数据 \ 最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。 \ 事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的NIO框架,加上高性能的…- 7
- 0
-
JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别
JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 一.异常的概述 异常算是程序中一个比较重要的环节了,我们首先来看一下异常的体系,我们举一个小例子,定义一个除法方法 1//公共的 类 类名 2public class HelloJJAVA { 3 // 公共的 静态 无返回值 main方法 数组 4 public s…- 3
- 0
-
JAVA并发编程(一):理解volatile关键字
Java中volatile这个热门的关键字,在面试中经常会被提及,在各种技术交流群中也经常被讨论:volatile关键字在java多线程中有着比较重要作用,volatile主要作用是可以保持变量在多线程中是实时可见的,是java中提供的最轻量的同步机制。 一、JAVA内存模型概述 在了解volatile关键字之前,我们先来认识一下Java的内存模型。 Java线程之间的通信由Java内存模型(本文…- 4
- 0
-
C++ 高性能服务器网络框架设计细节
前言 这篇文章我们将介绍服务器的开发,并从多个方面探究如何开发一款高性能高并发的服务器程序。需要注意的是一般大型服务器,其复杂程度在于其业务,而不是在于其代码工程的基本框架。 大型服务器一般有多个服务组成,可能会支持CDN,或者支持所谓的“分布式”等,这篇文章不会介绍这些东西,因为不管结构多么复杂的服务器,都是由单个服务器组成的。所以这篇文章的侧重点是讨论单个服务程序的结构,而且这里的结构指的也是…- 20
- 0
-
JVM性能优化系列-(6) 晚期编译优化
目前已经更新完《Java并发编程》和《Docker教程》,欢迎关注【后端精进之路】,轻松阅读全部文章。 Java并发编程: Java并发编程系列-(1) 并发编程基础 Java并发编程系列-(2) 线程的并发工具类 Java并发编程系列-(3) 原子操作与CAS Java并发编程系列-(4) 显式锁与AQS Java并发编程系列-(5) Java并发容器 Java并发编程系列-(6) Java线程…- 3
- 0
-
Java性能优化(10):谨慎改写clone
Cloneable接口的目的是作为对象的一个mixin接口,表明这样的对象允许克隆。不幸的是,它并没有成功达到这个目的。其主要的缺陷在于它缺少一个clone方法,Object的clone方法是被保护的,如果不借助于反射机制,则不能仅仅因为一个对象实现了Cloneable,就可以调用clone方法。即使在反射调用也可能会失败,因为并不保证该对象一定具有可访问性的clone方法。尽管存在这样那样的不足…- 26
- 0
-
Java 程序优化:字符串操作、基本运算方法等优化策略
针对 Java 程序编写过程中的实际问题,本文分为两部分,首先对字符串相关操作、数据切分、处理超大 String 对象等提出解决方案及优化建议,并给出具体代码示例;然后对数据定义、运算逻辑优化等方面提出解决方案及优化建议,并给出具体代码示例。 由于本文所尝试的实验都是基于联想 L430 笔记本,i5-3320CPU,4GB 内存基础上的,其他机器上运行代码可能结果有所不同,请以自己的实验环境为准。…- 2
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!