线程、并发
敲代码的拉布拉多
这个作者很懒,什么都没留下…
展开
-
并发容器
本文主要介绍CurrentHashMap、CopyOnWriteArrayList等集合类的原理特点原创 2020-10-27 11:34:21 · 244 阅读 · 0 评论 -
Atomic原子类、CAS
Atomic原子类、CAS原理原创 2020-10-24 12:11:10 · 162 阅读 · 0 评论 -
锁
本文主要介绍Java中的锁原创 2020-10-12 00:40:17 · 149 阅读 · 0 评论 -
ThreadLocal
本文主要介绍ThreadLocal,包括它的底层结构、源码以及注意事项(内存泄漏问题)原创 2020-10-09 12:18:07 · 203 阅读 · 1 评论 -
线程池
本文主要介绍线程池的相关用法和基础知识原创 2020-10-07 22:38:28 · 120 阅读 · 0 评论 -
线程死锁的触发、修复、避免策略
本文主要介绍死锁的前世今生,关于死锁的策略、活锁以及一些面试题原创 2020-09-06 23:50:56 · 475 阅读 · 0 评论 -
并发编程底层原理(Java内存模型、重排序、可见性、原子性、单例模式)
本文从JMM讲起,引出重排序、可见性、原子性这三个重要内容,在这中间讲了volatile、synchronized的区别,最后展示了单例模式的创建方式,在单例模式中用到了前面的重排序、可见性、原子性的原理。原创 2020-09-06 15:03:23 · 339 阅读 · 0 评论 -
多线程会导致的问题——安全、性能
本文主要介绍多线程的安全和性能问题,包括几个线程不安全的例子和解决办法原创 2020-09-02 19:49:34 · 598 阅读 · 0 评论 -
线程异常处理
本文主要介绍线程中如何全局处理异常原创 2020-09-01 17:14:35 · 636 阅读 · 0 评论 -
线程属性
线程ID可以看到,线程ID是从1开始,子线程ID直接跳到了12,而不是2,原因是在JVM启动时,会创建很多守护线程。守护线程作用:给用户线程提供服务特性:线程类型默认继承自父线程守护线程由JVM启动,JVM启动过程中只有一个线程是用户线程:main守护线程不会影响JVM的退出守护线程和用户线程的区别:大体一样,不同点是:用户线程全部结束后,JVM不管守护线程是否结束,都可以直接退出受否需要将线程设置为守护线程:不应该将用户线程设置为守护线程。如果将用户线程设置为守护线程,会变得危险。.原创 2020-09-01 16:38:23 · 135 阅读 · 0 评论 -
wait、notify、notifyAll、sleep、join、yield详解
一、wait、notify、notifyAllwait、notify、notifyAll都要求当前线程拥有该object的monitor锁1.1 wait-notify演示//创建俩线程,一个wait之后,另一个notify唤醒public class Wait { public final static Object object = new Object(); static class Thread1 extends Thread{ @Override原创 2020-08-15 20:21:53 · 347 阅读 · 0 评论 -
线程生命周期
一、线程的六种状态NewRunnableBlockedWaitingTimed WaitingTerminatedNew、Runnable、Terminatedpublic class NewRunnableTerminated implements Runnable{ public static void main(String[] args) { Thread thread = new Thread(new NewRunnableTerminated());.原创 2020-08-13 11:38:42 · 106 阅读 · 0 评论 -
优雅的启动和关闭线程
1、启动线程:start和run的区别启动线程时,要调用start方法。而start方法会去调用run方法,那么为什么不直接调用run方法?public static void main(String[] args) { Runnable runnable = () -> { System.out.println(Thread.currentThread().getName()); }; runnable.run();原创 2020-08-10 21:11:26 · 1091 阅读 · 0 评论 -
创建线程到底有几种方式?
创建线程有几种方式呢??1、其实,创建线程在本质上只有**两种方式**继承thread类实现Runnable接口①通过Thread创建线程public class ThreadStyle extends Thread{ @Override public void run(){ System.out.println("用Thread类实现线程"); } public static void main(String[] args) {原创 2020-08-07 09:55:56 · 652 阅读 · 0 评论