
Java并发编程
Happywuw
学习如逆水行舟,不近则退!
由于目前公司有很不错的学习平台,以及个人笔记平台,暂停博客更新。但也会定期把笔记批量更新到博客。
展开
-
彻底理解ThreadLocal
转载自:http://blog.youkuaiyun.com/lufeng20/article/details/24314381ThreadLocal是什么 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLoca转载 2017-07-26 11:25:29 · 391 阅读 · 0 评论 -
线程池:QueuedThreadPool
线程池这个应该是比较重要的一个组件了吧。。。。首先在SelectChannelConnector中,需要建立SelectSet,从而建立selector,而select的执以及I/O的都需要放到线程池中运行,而且需要独占的线程。。而当selector中获取远程连接的数据之后,就需要进行http的处理流程。。。这里又需要将他们派发到线程池中运行。。。从而线程池实现的高效也是jetty是否能够...转载 2019-02-12 20:07:00 · 1282 阅读 · 0 评论 -
多线程&JVM&锁相关—深入学习java同步器AQS
介绍:AQS(AbstractQueuedSynchronizer类)是一个用来构建锁和同步器的框架,它在内部定义了一个int state变量,用来表示同步状态.在LOCK包中的相关锁(常用的有ReentrantLock、 ReadWriteLock)都是基于AQS来构建.然而这些锁都没有直接来继承AQS,而是定义了一个Sync类去继承AQS.那么为什么要这样呢?because:锁面向的是使用用户...原创 2018-05-04 16:21:08 · 280 阅读 · 0 评论 -
多线程&JVM&锁相关—乐观的并发策略——基于CAS的自旋
悲观者与乐观者的做事方式完全不一样,悲观者的人生观是一件事情我必须要百分之百完全控制才会去做,否则就认为这件事情一定会出问题;而乐观者的人生观则相反,凡事不管最终结果如何,他都会先尝试去做,大不了最后不成功。这就是悲观锁与乐观锁的区别,悲观锁会把整个对象加锁占为自有后才去做操作,乐观锁不获取锁直接做操作,然后通过一定检测手段决定是否更新数据。这一节将对乐观锁进行深入探讨。上节讨论的Synchron...转载 2018-05-04 16:08:00 · 287 阅读 · 0 评论 -
Java单例模式——并非看起来那么简单
Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,而且起到了全局统一管理控制转载 2018-01-24 14:28:19 · 400 阅读 · 0 评论 -
Java并发编程相关面试问题
基础概念1.什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作。在Java中可以通过锁和循环CAS的方式来实现原子操作。 CAS操作——Compare & Set,或是转载 2017-10-15 23:38:31 · 491 阅读 · 0 评论 -
《Java程序性能优化》学习笔记 设计优化
豆瓣读书:http://book.douban.com/subject/19969386/ 第一章 Java性能调优概述1.性能的参考指标 执行时间: CPU时间: 内存分配: 磁盘吞吐量: 网络吞吐量: 响应时间:2.木桶定律 系统的最终性能取决于系统中性能表现最差的组件,例如window系统内置的评分就是选取最低分。可能成为系统瓶颈转载 2017-10-12 23:14:15 · 343 阅读 · 0 评论 -
《Java并发编程实战》学习笔记 任务执行和取消关闭
查看豆瓣读书第六章 任务执行大多数并发应用程序是围绕执行任务进行管理的。设计任务时,要为任务设计一个清晰的任务边界,并配合一个明确的任务执行策略。任务最好是独立的,因为这会提高并发度。大多数服务器应用程序都选择了下面这个自然的任务边界:单个客户请求。任务时逻辑上的工作单元,线程是使任务异步执行的机制。应用程序内部的任务调度,存在多种可能的调度策略:其中,最简单的策略是在转载 2017-10-12 23:03:18 · 479 阅读 · 0 评论 -
《Java并发编程实战》学习笔记 线程安全、共享对象和组合对象
Java Concurrency in Practice,一本完美的Java并发参考手册。查看豆瓣读书推荐:InfoQ迷你书《Java并发编程的艺术》第一章 介绍线程的优势:充分利用多处理器简化模型简化异步事件的处理提供用户界面的响应(时间)线程的风险:安全的风险(不好的事情会发生),提高错误出现的几率活性的风险(好的事情不会发生),如某转载 2017-10-12 23:00:16 · 330 阅读 · 0 评论 -
Java多线程编程的常见陷阱
1、在构造函数中启动线程我在很多代码中都看到这样的问题,在构造函数中启动一个线程,类似这样:public class A{ public A(){ this.x=1; this.y=2; this.thread=new MyThread(); this.thread.start(); } }转载 2017-10-12 22:50:02 · 309 阅读 · 0 评论 -
【Java并发编程】并发编程大合集
转载请注明出处:http://blog.youkuaiyun.com/ns_code/article/details/17539599 为了方便各位网友学习以及方便自己复习之用,将Java并发编程系列内容系列内容按照由浅入深的学习顺序总结如下,点击相应的标题即可跳转到对应的文章 【Java并发编程】实现多线程的两种方法 【Java并发编程】线程的中断 【Java并发转载 2017-07-26 11:27:38 · 455 阅读 · 1 评论 -
Jetty源码阅读 - ServerConnector
Java NIO模型的关键类是ServerSocketChannel SocketChannel Selector这两个,其中ServerSocketChannel用于创建服务端端口的监听,且提供了#accept方法用于返回SocketChannel。SocketChannel负责完成与client端的通信以及在Selector中注册关心事件。非阻塞IO的关键是Selector利用操作系统底层提供...转载 2019-02-13 10:37:49 · 369 阅读 · 0 评论