多线程
文章平均质量分 58
罗罗诺亚F
尼卡
展开
-
ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal使用示例
1.ThreadLocalThreadLocal用于保存线程线程本地变量,访问这个变量的每个线程都会有这个变量的一个本地副本,多个线程同时对这个变量进行读写操时,实际上操作的是线程自己本地内存中的变量,从而避免了线程安全的问题。public class ThreadLocalTest { private static ThreadLocal<String> threadLocal = new ThreadLocal<>(); public static v原创 2022-06-05 19:16:26 · 576 阅读 · 0 评论 -
Future和FutureTask简单使用
Future、FutureTask原创 2022-06-04 13:02:54 · 527 阅读 · 1 评论 -
线程的创建、生命周期、执行顺序
进程是系统中正在运行的程序实例。进程是系统资源分配的独立实体,每个进程都有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,进程间如果想通信,需要通过管道、套接字等。线程是比进程更小的独立运行的基本单位,同时也是操作系统能够进行运算调度的最小单位。包含在进程中,是进程实际运作的单位。多线程可以理解为在一个进程中同时运行多个不同的线程来执行不同的任务,这些线程可以同时利用CPU的多个核心运行。多线程编程能够最大限度的利用CPU的资源,例如当一个线程的处理不需要占用CPU资源时(例如IO线程),可以使原创 2022-06-03 15:48:21 · 567 阅读 · 0 评论 -
SimpleDateFormat的线程安全问题及解决办法
SimpleDateFormat的线程安全问题及解决办法原创 2022-05-04 00:00:26 · 711 阅读 · 0 评论 -
wait、sleep、notify、notifyAll方法总结
wait和sleep方法区别wait方法位于Object类中,sleep方法位于Thread类中 在调用wait方法时,线程必须持有被调用对象的锁,当调用wait方法后,线程就会释放掉该对象的锁(monitor);sleep方法不会释放对象锁 wait方法需要在同步方法或者代码块中执行,sleep没有限制 wait方法执行后唤醒需要等待其他线程调用对象的notify或者notifyAll...原创 2019-11-23 23:30:56 · 459 阅读 · 0 评论 -
ThreadLocal和InheritableThreadLocal的区别
1、ThreadLocal 主要解决每个线程绑定自己的值,达到线程直接隔离。 1.1如果第一次访问没有设定初始值,返回为null 1.2线程直接的隔离性//继承ThreadLocal类public class ThreadLocalExt extends ThreadLocal{}//创建两个线程,分别设置自己的值public class ThreadA extends Thread{原创 2017-05-15 22:43:14 · 1164 阅读 · 0 评论 -
Java线程循环顺序执行
遇到一个面试题需要3个线程顺序执行,并循环10次,代码如下:public class MyThread extends Thread { private Object lock; private String showChar; private int showNumPosition; private int printCount = 0; volatile pri原创 2017-02-15 16:56:20 · 6359 阅读 · 0 评论 -
synchronized和volatile的区别
volatile是线程同步的轻量级实现,所以volatile性能比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。多线程访问volatile不会发生阻塞,而synchronized会出现阻塞。volatile能保证数据的可见性,但是不能保证原子性,而synchronized可以保证原子性,也可以间接保证可见性,因为它会将私有内原创 2017-03-01 23:00:07 · 421 阅读 · 0 评论 -
进程与线程
进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。进程是资源分配的基本单位,也是调度运行的基本单位。 通过windows任务管理器可以看出,系统中运行exe程序就可以理解为一个“进程”,进程是受操作系统管理的最基本的单元。 线程可以理解为进程中原创 2017-01-19 14:18:04 · 445 阅读 · 0 评论 -
Java中的守护线程
Java中的线程分两类,User Thread(用户线程)、Daemon Thread(守护线程)。1、用户线程Thread userThread = new Thread("User Thread");2、守护线程Thread daemonThread = new Thread("Daemon Thread"); daemonThread.setDaemon(true); 在当前JVM实例原创 2017-01-19 11:39:03 · 436 阅读 · 0 评论 -
java线程中的interrupt、interrupted、isInterrupt方法
(1)interrupt:在当前线程打一个停止标记,并不是真的停止线程。 (2)interrupted:测试当前线程是否已经中断,执行后具有将状态标识置为false的功能。 (3)isInterrupt:测试线程Thread是否已经是中断状态,但不清除状态标识。public class Run2 { public static void main(String[] args) {原创 2017-02-08 14:17:10 · 1212 阅读 · 0 评论