Java多线程
谭正强
一个不愿在枯燥的日子里自废武功,同时对技术有点追求的 Java、大数据程序员。永远对牛人心生敬仰,对自己不甘平庸。
人到中年,太多的无奈驱使我无法专心做技术,但是在这里我希望这颗心可以纯粹点,聊点对技术的热爱,反省下当下的人生。
展开
-
一、了解线程
一、进程和线程①进程:处于运行过程中的程序 (独立性、并发性、动态性)②线程:线程是进程的执行单元,在程序中是独立并发的执行流。二、创建线程的3种方式1、继承Thread类/* * Creation : 2015年9月29日 */package com.tan.thread.test;public class FirstThread extends Thread { privat原创 2015-10-17 15:19:31 · 489 阅读 · 0 评论 -
二、线程相关类ThreadLocal
/* * Creation : 2015年10月17日 */package com.tan.thread.ThreadLocal;class Account { // ①创建线程局部变量:name private ThreadLocal<String> name = new ThreadLocal<String>(); public Account(String str)原创 2015-10-19 10:46:00 · 477 阅读 · 0 评论 -
三、多线程安全实例
线程同步会在偶然的多线程并发访问情况下出现线程安全的情况,例如银行的取钱存钱操作等都是需要保证数据的一致性,和每次操作的线程安全。一、线程安全问题 现在使用2个线程来模拟银行取款操作,模拟2个人使用同一个账户并发取钱的问题。 定义Account类 /* * Creation : 2015年10月15日 */ pa原创 2015-10-20 15:19:33 · 582 阅读 · 0 评论 -
四、线程池
线程池实例一/* * Creation : 2015年10月17日 */package com.tan.thread.ThreadPool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;class MyThread implements Runnable {原创 2015-10-20 20:21:59 · 539 阅读 · 0 评论 -
五、线程通信
需求: 要有取款者和存款者,二者不断的进行存款、取款动作。当存款者存入指定账户时,取钱者立即取出这笔钱,不允许存款者连续2次存款,也不允许取款者2次连续取钱。思路:设置旗标标示账户中是否有存款,flag=false即为没有当存款者存钱后,flag=true,并调用notify()或者notifyAll()来唤醒其他线程当存款者进入线程体后如果旗标为true则wait()等待当原创 2015-10-20 20:59:28 · 566 阅读 · 0 评论 -
Java可扩展线程池-ThreadPoolExecutor
1、ThreadPoolExecutor我们知道ThreadPoolExecutor是可扩展的,它提供了几个可以在子类中改写的空方法如下: protected void beforeExecute(Thread t, Runnable r) { } protected void afterExecute(Runnable r, Throwable t) { } protec...原创 2018-06-11 16:00:05 · 967 阅读 · 0 评论 -
Java线程池-自定义拒绝策略
Q: 什么时候需要使用拒绝策略呢? A: 当任务数量超过系统实际承载能力的时候就要用到拒绝策略了,可以说它是系统超负荷运行的补救措施。简言之,就是线程用完,队列已满,无法为新任务服务,则需一套机制来合理的处理这些问题。JDK 提供了四种内置拒绝策略,我们要理解并记住,有如下的四种: 1、DiscardPolicy: 默默丢弃无法处理的任务,不予任何处理 2、DiscardOl...原创 2018-06-11 17:53:31 · 10003 阅读 · 3 评论 -
高性能队列——Disruptor
背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。目前,包括...转载 2018-08-01 15:06:41 · 410 阅读 · 0 评论