随笔分类 - Java并发编程
摘要:最近发现系统里面在使用到了 ThreadLocal,乍一看,好像很高级的样子。再仔细一看,完全就是一个 ThreadLocal 滥用的典型案例啊!甚至,日常的业务系统中,90%以上都在滥用或者错用啊
阅读全文
摘要:如果让你看一篇文章,就可以精通HashMap,成为硬刚面试官的高手,你学还是不学?
阅读全文
摘要:先来看下结论:正确启动线程的方式是使用start()方法,而不是使用run()方法。 代码实战 1. 输出线程名称 “Talk is cheap. Show me the code”,用代码说话:分别调用run()方法和start()方法,打印输出线程的名字。 运行结果: 2. 深入一点 如果代码是
阅读全文
摘要:并发编程是Java语言的重要特性之一,“如何在Java中实现线程”是学习并发编程的入门知识,也是Java工程师面试必备的基础知识。本文从线程说起,然后用代码说明如何在Java中实现线程。
阅读全文
摘要:synchronized关键字在多线程并发编程中一直是元老级角色的存在,是学习并发编程中必须面对的坎,也是走向Java高级开发的必经之路。本文介绍synchronized关键字,用代码展示多线程访问同步方法的7种情况。
阅读全文
摘要:手写JDK锁 需要三个步骤: 1. 手写一个类MyLock,实现Lock接口 2. 重写lock()方法 3. 重写unlock()方法 代码: 测试 启动10个线程,每个线程执行10000次incr()操作。 java public class TestMyLock { int i = 0; in
阅读全文
摘要:线程是比进程更加轻量级的调度执行单位,理解线程是理解并发编程的不可或缺的一部分;而生产过程中不可能永远使用裸线程,需要线程池技术,线程池是管理和调度线程的资源池。因为前不久遇到了一个关于线程状态的问题,今天就趁热打铁从源码的层面来谈一谈线程和线程池的状态及状态之间的转移。
阅读全文
摘要:本文在 Java线程面试题 Top 50的基础上,对部分答案进行进行了整理和补充,问题答案主要来自《Java编程思想(第四版)》,《Java并发编程实战》和一些优秀的博客,当然还有我个人的拙见,添加部分大多用不同颜色进行了区别以方便阅读。
阅读全文