随笔分类 -  Java线程

摘要:​ ThreadLocal意为线程本地变量,用于解决多线程并发时访问共享变量的问题。 ​ 所谓的共享变量指的是在堆中的实例、静态属性和数组;对于共享数据的访问受Java的内存模型(JMM)的控制,其模型如下: 每个线程都会有属于自己的本地内存,在堆(也就是上图的主内存)中的变量在被线程使用的时候会被 阅读全文
posted @ 2022-10-13 11:14 江南大才子 阅读(859) 评论(0) 推荐(0) 编辑
摘要:上一章节说了同步和异步机制中的同步 synchronized 相关使用。这次说说 volatile 关键字,对于 synchronized 来说主要是针对同步块或者方法。而 volatile 修饰的是变量。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于vol 阅读全文
posted @ 2022-09-13 16:47 江南大才子 阅读(181) 评论(0) 推荐(0) 编辑
摘要:Synchronized synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized 翻译为中文的意思是同步,也称之为”同步锁“。 synchronized的作用是保证在同一时刻, 被修饰的代码块或方法只会有一个线程执行,以达到保证并发安全的效果。 Java内存的可 阅读全文
posted @ 2022-08-30 15:23 江南大才子 阅读(5490) 评论(0) 推荐(2) 编辑
摘要:7个参数的用途 创建线程池一共有7个参数,从源码可知,corePoolSize和maximumPoolSize都不能小于0,且核心线程数不能大于最大线程数。 corePoolSize 线程池核心线程数量,核心线程不会被回收,即使没有任务执行,也会保持空闲状态。 maximumPoolSize 池允许 阅读全文
posted @ 2021-06-07 15:59 江南大才子 阅读(3207) 评论(0) 推荐(2) 编辑
摘要:1.什么是守护线程? 守护线程是指为其他线程服务的线程。在JVM中,所有非守护线程都执行完毕后,无论有没有守护线程,虚拟机都会自动退出。很好理解,没有被守护的对象了,也不需要守护线程了。 Java程序入口就是由JVM启动main线程,main线程又可以启动其他线程。当所有线程都运行结束时,JVM退出 阅读全文
posted @ 2021-06-07 15:48 江南大才子 阅读(721) 评论(3) 推荐(0) 编辑
摘要:JDK为我们提供了Executors线程池工具类,里面有默认的线程池创建策略,大概有以下几种: FixedThreadPool:线程池线程数量固定,即corePoolSize和maximumPoolSize数量一样。 SingleThreadPool:单个线程的线程池。 CachedThreadPo 阅读全文
posted @ 2021-05-31 14:30 江南大才子 阅读(575) 评论(0) 推荐(0) 编辑
摘要:线程状态图 1.新建状态: 线程对象一旦创建就进入新建状态。Thread.State.NEW 2.就绪状态: 当调用start()方法,线程立即进入就绪状态,等待cpu调度。 3.运行状态: cup调度,执行线程体的代码块。Thread.State.RUNNABLE 4.阻塞状态: 当调用sleep 阅读全文
posted @ 2021-05-24 23:24 江南大才子 阅读(321) 评论(0) 推荐(0) 编辑
摘要:一 继承thread类 1. 定义Thread的子类,重写run()方法,run()方法称为线程执行体 2. 创建Thread子类的实例 3. 调用线程对象的start()方法启动线程 public class MyThread extends Thread { @Override public v 阅读全文
posted @ 2019-12-19 21:28 江南大才子 阅读(1674) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示