并发线程
文章平均质量分 79
java-多线程总结
似寒若暖
眼中有笑,心中有暖!
展开
-
并发编程总结
多线程的创建方式继承Thread类Thread + RunnableThread + 匿名内部类Java8 Lamda表达式Thread + FuturnTask + Callable(可获取返回值)Timer + 匿名内部类线程池 + 任务详情链接:Callable 与 Runnable的区别抽象方法不同Callable抽象方法为:call()方法Runnable抽象方法为:run()方法返回值不同Callable的返回值为泛型TRunnable没有返回值为异常处理不原创 2022-03-31 15:03:28 · 558 阅读 · 0 评论 -
多线程停止
测试代码 public static void main(String[] args) throws InterruptedException { // 方式一 TPTInterrupt t = new TPTInterrupt(); // 方式二 TPTVolatile t1 = new TPTVolatile(); t.start(); Thread.sleep(3500); MyTool原创 2022-04-06 10:11:19 · 83 阅读 · 0 评论 -
多线程创建方式
方式一:继承Thread/** * 方法一:继承Thread类,作为线程对象存在(继承Thread对象) * */public class Way01 extends Thread{ public Way01(String name) { super(name); } @Override public void run() { while (!interrupted()){ MyTool.printTimeA原创 2022-03-31 16:09:23 · 292 阅读 · 0 评论 -
ThreadLocal 详解
ThreadLocal 概述ThreadLocal类用来提供线程内部的局部变量,不同的线程之间不会相互干扰这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量在线程的生命周期内起作用,可以减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度使用常用方法方法名描述ThreadLocal()创建ThreadLocal对象public void set( T value)设置当前线程绑定的局部变量publ原创 2022-04-19 11:12:54 · 25329 阅读 · 7 评论 -
volatile 详解
Java 内存模型(Java Memory Model)JMM 即 Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着 CPU 寄存器、缓存、硬件内存、CPU 指令优化等JMM主要体现在以下几个方面原子性(多写多读):保证指令不会受到线程上下文切换的影响可见性(一写多读):保证指令不会受到CPU缓存的影响有序性:保证指令不会受到CPU指令并行优化的影响原子性问题—得不到预期值public class AtomQuestion { static int c原创 2022-04-12 20:31:31 · 399 阅读 · 0 评论 -
原子类详解
Unsafe概述Unsafe对象提供了非常底层操作内存、线程的方法该类只提供了一个私有的无参构造,且Unsafe的定义是一个的私有成员变量,源码如下public final class Unsafe { //私有成员静态变量 private static final Unsafe theUnsafe; // 构造器 private Unsafe() { }由上一点可知Unsafe对象只能通过反射获取,不能直接创建,获取方式如下public原创 2022-04-14 10:16:00 · 1961 阅读 · 2 评论 -
多线程相关方法
Thread相关方法run() 与 start()package com.yanxb.method.threadmethod;import com.yanxb.util.MyTool;/** * 测试 run()方法 和 start()方法 * * */public class TestRunAndStart { public static void main(String[] args) { test01(); } /** * 直接调原创 2022-04-10 11:22:58 · 102 阅读 · 0 评论 -
Synchronized 详解
语法 synchronized(锁对象) // 线程1, 线程2(blocked){ 临界区}注意如果 t1 synchronized(obj1) 而 t2 synchronized(obj2) 会怎样?此种方式相当于多个线程持有不同的锁,不会起到保证临界区代码是原子性操作,达不到预期如果 t1 synchronized(obj) 而 t2 没有加会怎么样?此种方式相当于一个线程持有锁一个线程没有锁,不会起到保证临界区代码是原子性操作,达不到预期方法上的synchronized形式原创 2022-04-12 16:22:39 · 2725 阅读 · 1 评论