thread
thread
东山富哥
个人
github地址:https://github.com/gaoxinfu
gitee 地址:https://gitee.com/gaoxinfu_admin
展开
-
通过代码简单而深入的了解多线程的意义和使用
文章目录并发概述影响并发的因素硬件层面软件层面多线程如何影响服务端的并发数量并行概述线程线程的特点同步异步线程的构建方式继承Thread类案例举例实现Runnable接口案例举例Callable/Future 带返回值概述案例举例线程的生命周期/状态state线程的启动概述源码分析Thread.start()线程的停止线程什么时候会停止线程停止的方式 并发 概述 1.这里的并发,主要是针对同一个服务实体或者应用,能否承载的请求数量 比如:我们说,京东的出单,对于京东的服务器应用来讲,并发数量10万,就是原创 2020-06-12 15:29:55 · 279 阅读 · 2 评论 -
线程的状态|生命周期(通过代码案例简单而深入的理解线程的状态)
文章目录线程的生命周期/状态state线程状态NEW案例举例控台输出RUNNABLE和RUNNING案例举例控台输出备注说明TIMED_WAITING案例举例控台输出备注说明WAITING案例举例控台输出备注说明Blocked案例举例控台说明TERMINATED线程状态变化流程图 线程的生命周期/状态state 线程状态 NEW 案例举例 package com.gaoxinfu.demo.jdk.rt.java.lang.thread.status; /** * @Description: * @A原创 2020-06-11 16:42:28 · 730 阅读 · 0 评论 -
synchronized 锁的介绍
线程的安全性问题<-并发编程带来的问题 问题演示 package com.gaoxinfu.demo.jdk.rt.java.lang.thread.synchronize; /** * @Description: 并发编程问题demo * @Author: gaoxinfu * @Date: 2020-06-13 16:02 */ public class SynchronizedQuestionDemo { public static Integer COUNT=0;原创 2020-06-15 10:58:02 · 230 阅读 · 0 评论 -
线程的通信(Wait/Notify|Notify All)
文章目录线程的通信(Wait/Notify|Notify All)概述典型应用案例MQ生产者模拟:MQProducercode备注说明MQ消费者模拟:MQConsumerCode备注说明MQ生产者与MQ消费者联合测试code控台输出备注说明 线程的通信(Wait/Notify|Notify All) 概述 1.比如我们线程ThreadB对于某个资源进行访问的时候,已经被线程ThreadA已经占有,这个时候 线程ThreadB可以调用Wait()进行等待 线程ThreadA一旦访问完毕,可以通过Not原创 2020-06-15 11:03:41 · 249 阅读 · 0 评论 -
JDK多线程之线程的停止
线程停止的概述 1.首先,我们这里的说的线程的停止,主要是基于一个线程的具体的业务任务的完成; 线程停止的方式 1.Thread.stop() 概述 1.stop方式是一种不安全的停止方式,因为他会停止当前线程当中剩余的全部工作; 所以很明显不符合我们上面的业务逻辑要求,因此是不推荐的,当前已经被废弃的方法; 2.使用volatile修饰的Filed字段 1.使用volatile修饰字段,根据被修饰字将STOP_FLAG的值判断,是否进行线程的终止; 2.备注:volatile修饰的字段,在多线程运原创 2020-05-17 11:09:23 · 213 阅读 · 0 评论 -
你真的理解线程是如何保证执行顺序的问题吗?
1.概述 1.我们这里的问题,主要是在同一个主线程当中,如何保证各个线程的执行顺序; 这里我们主要是通过join方法去实现 2.下面我们先对join方法的源码进行解析一下 2.Join方法解析 2.1.概述 1.源码我们调用join方法之后,最终会调用wait(0)(0表示一直等待,直到线程处理结束) 这里注意下,我们一般调用wait之后,需要通过notify或者notifyAll方法去通知已经解锁 这里的join方法中,C++底层实际上已经调用notifyAll我们不做过多了解; publ原创 2020-05-17 12:47:25 · 412 阅读 · 0 评论 -
ReentrantLock重入锁以及实现原理
ReentrantLock重入锁以及实现原理原创 2020-06-07 07:05:50 · 202 阅读 · 0 评论 -
JDK线程池的原理
文章目录1.线程池的概念2.线程池的优点2.1.减少资源的消耗2.2.提高请求访问速度(响应速度)2.3.便于对线程的管理3.JDK API3.1.线程池对象ThreadPoolExecutor(ExecutorService子类)3.2.创建线程池的核心工具类对象-Executors3.3.Executors 创建线程池的核心方法3.3.1.创建只有一个线程的线程池:newSingleThreadExecutor3.3.2.创建固定线程数量的线程池:newFixedThreadPool3.3.3.创建没有原创 2020-06-04 13:44:50 · 427 阅读 · 0 评论 -
ThreadLocal相关面试
文章目录1.ThreadLocal是什么?2.ThreadLocal的工作原理?3.如何解决ThreadLocal的内存泄漏问题4.案例 1.ThreadLocal是什么? 1.其实ThreadLocal跟Synchronized一样,都是一个为了解决变量变化问题,类似给变量加锁; 2.实际上使用了ThreadLocal,相当于对对本地线程中的变量或者变量对象的引用copy一份,这样就使得各个线程中 的变量和对象互不影响;这样各个线程在高并发场景下,适合各个线程不共享变量值的操作; 3.ThreadLo原创 2020-05-19 17:31:14 · 206 阅读 · 0 评论