Java并发编程
初级码奴
学习资源
http://blog.720ui.com
https://www.liaoxuefeng.com/
展开
-
创建线程的几种方式
编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有四种方法,Thread,Runnable,Callable,使用Executor框架来创建线程池。Runnable和Callable的区别是,(1)Callable规定的方法是call(),Runnable规定的方法是run().(2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得(3...转载 2018-08-27 15:48:35 · 6238 阅读 · 2 评论 -
线程池原理及实现
1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程池包括以下四...转载 2018-08-28 09:39:17 · 123 阅读 · 0 评论 -
戏(细)说Executor框架线程池任务执行全过程(上)
原文链接:http://ifeve.com/executor-framework-thread-pool-task-execution-part-01/内容综述基于Executor接口中将任务提交和任务执行解耦的设计,ExecutorService和其各种功能强大的实现类提供了非常简便方式来提交任务并获取任务执行结果,封装了任务执行的全部过程。本文尝试通过对j.u.c.下该部分源码的解析以...转载 2018-08-28 11:31:49 · 101 阅读 · 0 评论 -
Java ThreadLocal 详解
尽管ThreadLocal与并发问题相关,可是很多程序猿只将它作为一种用于“方便传參”的工具,笔者觉得这或许并非ThreadLocal设计的目的,它本身是为线程安全和某些特定场景的问题而设计的。ThreadLocal是什么呢。每一个ThreadLocal能够放一个线程级别的变量,可是它本身能够被多个线程共享使用,并且又能够达到线程安全的目的,且绝对线程安全。比如:public fina...转载 2018-08-24 13:54:48 · 327 阅读 · 0 评论 -
重入锁:ReentrantLock 详解
在JDK5.0版本之前,重入锁的性能远远好于synchronized关键字,JDK6.0版本之后synchronized 得到了大量的优化,二者性能也不分伯仲,但是重入锁是可以完全替代synchronized关键字的。除此之外,重入锁又自带一系列高逼格UBFF:可中断响应、锁申请等待限时、公平锁。另外可以结合Condition来使用,使其更是逼格满满。先来盘花生米:package som...转载 2018-08-24 16:47:38 · 107 阅读 · 0 评论