理论实践
文章平均质量分 91
kylt
.....
展开
-
(转)Java 理论与实践: 非阻塞算法简介
Brian Goetz ([email protected]), 首席顾问, Quiotix简介: Java™ 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能。非阻塞算法属于并发算法,它们可以安全地派生它们的线程,不通过锁定派生,而是通过低级的原子性的硬件原生形式 —— 例如比较和交换...原创 2011-05-10 10:38:07 · 97 阅读 · 0 评论 -
从LongAdder 看更高效的无锁实现
接触到AtomicLong的原因是在看guava的LoadingCache相关代码时,关于LoadingCache,其实思路也非常简单清晰:用模板模式解决了缓存不命中时获取数据的逻辑,这个思路我早前也正好在项目中使用到。言归正传,为什么说LongAdder引起了我的注意,原因有二:1. 作者是Doug lea ,地位实在举足轻重。2. 他说这个比AtomicLong高效。我们知道...原创 2015-12-08 15:27:20 · 135 阅读 · 0 评论 -
如何正确对用户密码进行加密?
本文介绍了对密码哈希加密的基础知识,以及什么是正确的加密方式。还介绍了常见的密码破解方法,给出了如何避免密码被破解的思路。相信读者阅读本文后,就会对密码的加密有一个正确的认识,并对密码正确进行加密措施。本文由Defuse Security安全团队撰写,作者采用了 CC协议 ,InfoQ翻译并分享,以飨读者。作为一名Web开发人员,我们经常需要与用户的帐号系统打交道,而这其中最大的挑战就是...原创 2017-03-26 10:18:35 · 3635 阅读 · 0 评论 -
Java I/O模型
Java I/O模型同步 vs. 异步同步I/O 每个请求必须逐个地被处理,一个请求的处理会导致整个流程的暂时等待,这些事件无法并发地执行。用户线程发起I/O请求后需要等待或者轮询内核I/O操作完成后才能继续执行。异步I/O 多个请求可以并发地执行,一个请求或者任务的执行不会导致整个流程的暂时等待。用户线程发起I/O请求后仍然继续执行,当内核I/O操作完成后会通知用户线程,或者调用用...原创 2016-10-24 17:42:14 · 142 阅读 · 0 评论 -
如何使代码审查更高效
本文要点代码审查者在审查代码时有非常多的东西需要关注。一个团队需要明确对于自己的项目哪些点是重要的,并不断在审查中就这些点进行检查。人工审查代码是十分昂贵的,因此尽可能地使用自动化方式进行审查,如:代码格式、代码样式、检查常见bug、确定常见安全问题以及运行自动化测试。当针对性能进行审查时,了解系统的性能需求是明确潜在问题的关键。一些简单的人工检查可以显著提升应用的安全性。...原创 2016-10-22 07:14:59 · 469 阅读 · 0 评论 -
Java并发的四种风味:Thread、Executor、ForkJoin和Actor
本文由 ImportNew - shenggordon 翻译自 Oleg Shelajev。欢迎加入翻译小组。转载请见文末要求。这篇文章讨论了Java应用中并行处理的多种方法。从自己管理Java线程,到各种更好几的解决方法,Executor服务、ForkJoin 框架以及计算中的Actor模型。Java并发编程的4种风格:Threads,Executors,ForkJoin和Actor...原创 2016-09-28 20:04:43 · 101 阅读 · 0 评论 -
分布式系统的事务处理
2014年1月20日 陈皓 当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务:...原创 2014-02-15 20:49:07 · 103 阅读 · 0 评论 -
Linux文件系统十问,你知道吗?
作者:yanfei,腾讯后台架构师,参与项目为搜搜网页开发和搜搜开放平台。 关于文件系统,相信大家都不陌生。身为攻城狮的我们几乎天天都会与之打交道,但是细深剖一下,其中又有多少是我们理解深度不够的呢。那么让我们一起来看一下下面这一组Linux文件系统相关的问题吧:1、机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的? 2、touch一个新的...原创 2013-08-20 17:31:04 · 110 阅读 · 0 评论 -
Spring AOP 实现原理与 CGLIB 应用
Spring AOP 实现原理与 CGLIB 应用 李 刚, 自由撰稿人简介: AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中的交叉关注点的问题,在 Java EE 应用中,常常通过 AOP 来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓...原创 2013-02-19 15:16:13 · 105 阅读 · 0 评论 -
JTA 深度历险 - 原理与实现
JTA 深度历险 - 原理与实现 肖 国一, 软件工程师, IBM王 晓利, 软件工程师, IBM简介: 在 J2EE 应用中,事务是一个不可或缺的组件模型,它保证了用户操作的 ACID(即原子、一致、隔离、持久)属性。对于只操作单一数据源的应用,可以通过本地资源接口实现事务管理;对于跨数据源(例如多个数据库,或者数据库与 JMS)的大型...原创 2012-09-05 16:07:44 · 64 阅读 · 0 评论 -
CAP理论十二年回顾:"规则"变了
CAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。但是通过显式处理分区情形,系统设计师可以做到优化数据一致性和可用性,进而取得三者之间的平衡。自打引入CAP理论的十几年里,设计师和研究者已经以它为理论基础探索了各式各样新颖的分布式系统,甚至到了滥用的程度。NoSQL运动也将CAP理论当作对抗传统关...原创 2012-08-31 14:58:38 · 110 阅读 · 0 评论 -
XA事务处理
为了说明X/Open XA接口在JTA事务管理中的重要性,以及它使用的时机,我们以前一章提到的一段固定收入交易的EJB代码为例:@TransactionAttribute(TransactionAttributeType.REQUIRED) public void placeFixedIncomeTrade(TradeData trade) throws Exception { ...原创 2012-04-06 17:23:15 · 124 阅读 · 0 评论 -
敏捷开发中高质量 Java 代码开发实践
概述Java 项目开发过程中,由于开发人员的经验、代码风格各不相同,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入和周期等问题。这些问题在一个项目组初建、需求和设计均具有不完全可预期性和完备性的全新项目中将尤为突出。本文将结合敏捷开发周期短,变化快等特点,介绍如何通过在开发过程中采取一系列步骤来保证和提高整个开发团队的代码质量,并...原创 2012-02-18 11:13:46 · 80 阅读 · 0 评论 -
(转)Java 理论与实践: 流行的原子
Java 理论与实践: 流行的原子新原子类是 java.util.concurrent 的隐藏精华Brian Goetz ([email protected]), 首席顾问, Quiotix简介: 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待、无锁定的算法。在 java.util.concurrent 中添...原创 2011-05-23 17:10:52 · 65 阅读 · 0 评论 -
HTTP,HTTP2.0,SPDY,HTTPS看这篇就够了
作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识,希望能给读者带来一些收获,如有不对之处还请指出。 1. web始祖HTTP全称:超文本传输协议(HyperText Transfer Protocol) 伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机网络...原创 2016-11-30 14:53:58 · 155 阅读 · 0 评论