感谢 ♥ 作者
先不感谢了
摘要: 面试场景: 面试官第一问: 请问,我现在编写一个类,类全名如下:java.lang.String,我们知道JDK也给我们听过了一个java.lang.String,那么,我们编写的这个String类能否替换到JDK默认提供,也就是说程序实际运行的时候,会加载我们的String还是JDK的String 阅读全文
posted @ 2020-11-09 15:38 MJyc 阅读(112) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal解决了什么问题?内部源码是怎么样的? 作用: 为每个线程创建一个副本 实现在线程的上下文传递同一个对象,比如connection 第一个问题:证明ThreadLocal为每个线程创建一个变量副本 public class ThreadLocalTest { private st 阅读全文
posted @ 2020-11-09 14:38 MJyc 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 如果这个是面试官直接问你的问题,你会怎么回答? 一个专业的描述是,当多个线程访问一个对象时,如果不用进行额外的同步控制或其他的协调操作,调用这个对象的行为都可以获得正确的结果,我们就说这个对象是线程安全的 那么我们如何做到线程安全? 实现线程安全的方式有多种,其中在源码中常见的方式是,采用synch 阅读全文
posted @ 2020-11-09 14:35 MJyc 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 1,JDK通过接口ExecutorService来表示线程池,通过工具类Executors来创建多种线程池对象 2,各种线程池的特点如下: newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优 阅读全文
posted @ 2020-11-09 14:32 MJyc 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 1,所属的类不同: sleep方法是定义在Thread上wait方法是定义在Object上 2,对于锁资源的处理方式不同 sleep不会释放锁wait会释放锁 3,使用范围: sleep可以使用在任何代码块wait必须在同步方法或同步代码块执行 4,与wait配套使用的方法 void notify( 阅读全文
posted @ 2020-11-09 14:26 MJyc 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 一图胜千言 灵魂画家出品。 上述的图有些简略,下面详细说明下,线程共有6种状态: new,runnable,blocked,waiting,timed waiting,terminated 1,当进入synchronized同步代码块或同步方法时,且没有获取到锁,线程就进入了blocked状态,直到 阅读全文
posted @ 2020-11-09 09:31 MJyc 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 因为java有个重要的特性,叫垃圾自动回收机制,所以答案是多线程,这里面有两部分,主线程(用户线程),垃圾回收线程GC(守护线程)同时存在。 阅读全文
posted @ 2020-11-09 09:18 MJyc 阅读(186) 评论(0) 推荐(0) 编辑