
Java多线程
TaoTie830
这个作者很懒,什么都没留下…
展开
-
AQS、CAS详解
AQS详解原子性操作自:原子性在一个操作是不可中断的,要么全部执行成功要么全部执行失败,有着“同生共死”的感觉。及时在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程所干扰2113CAS:全称(Compare And Swap),比较交换,Unsafe类是CAS的核心类,提供硬件级别的原子操作。CAS 中有三个参数:内存值 V、旧的预期值 E、要更新的值 N ,当且仅当内存值 V 的值等于旧的预期值 A 时,才会将内存值V的值修改为 B ,否则什么都不干。CAS比较与交换的伪代码可以表示原创 2020-06-03 00:51:31 · 643 阅读 · 0 评论 -
ThreadLocal源码解析
ThreadLocal 多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁之外的一种规避多线程访问出现线程不安全的方法,当我们在创建一个变量后,如果每个线程对其进行访问的时候访问的都是线程自己的变量这样就不会存在线程不安全问题。ThreadLocal提供线程本地变量,如果创建一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个原创 2020-05-31 20:38:00 · 1003 阅读 · 0 评论 -
Timer和TimerTask源码解读(面试题:双重定时器)
Timer和TimerTask源码解读Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。Timer和TimerTask基本使用使用Timer线程实现和计划执行一个任务:实现自定义的TimerTask的子类,run方法包含要执行的任务代码。实例化Timer类,创建计时器后台线程。实例化任务对象 (new RemindTask()).制定执行计划。原创 2020-05-31 13:27:02 · 537 阅读 · 0 评论 -
Java多线程(一)——多线程基本概念、线程创建方式
Java多线程(一)一、程序、进程、线程基本概念程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象。进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程。线程:线程是操作系统能够进⾏运算调度的最⼩单位,它被包含在进程之中,是进程中的实际运作单位,可以使⽤多线程对进⾏运算提速。二、并发、并行基本概念并行:多个CPU同时执行多个任务。多个cpu实例或者多台机器同时执行一段处理逻辑。并发:一个CPU(采用时间片)同原创 2020-05-30 23:56:19 · 391 阅读 · 2 评论