多线程学习笔记
锁五龙
这个作者很懒,什么都没留下…
展开
-
多线程基础概念-上下文切换和死锁
多线程基础概念-上下文切换和死锁 上下文切换 ###1. 什么是上下文切换 cpu通过时间片分配算法来分配各个线程执行的时间。当一个线程执行了一个时间片之后就会切换到下一个线程的时间片。但是,在切换之前会保存当前线程的执行状态(程序计数器)以便于在切换回这个线程后能够继续上一个时间片执行。简单来说线程任务从保存到切换回来的这个过程就是一次上下文切换 ###2. 为什么上下文切换会影响线程执行速度 ...原创 2019-11-12 20:19:41 · 262 阅读 · 0 评论 -
Volatile关键字
Volatile关键字 volatile关键字的作用是实现了共享变量在线程之间的可见性和防止指令的重排序。 volatile分析 在并发编程中有这样三个基本概念: 原子性 一个或者多个操作在执行过程中不会被打断。要么全部执行完毕,要么就全不执行。例如: i = x + 1 ; 这就不是一个原子操作。因为要执行上面的代码需要 首先读取X的值 , 然后把X的值加1 , 再将结果赋值给 i。 volat...原创 2019-11-03 17:41:42 · 303 阅读 · 0 评论 -
Synchronized关键字
Synchronized关键字 简单介绍 java中的一个关键字,可作为方法,代码块的修饰符,目的是保证修饰范围(方法or代码块的生命周期)的线程安全性。 synchronzed是互斥锁,它既能保证资源不能被多个线程同时占用,又能够保证资源在各线程之间的可见性。 当一个线程试图进入到受保护的代码段落中,必须先获得到锁,待方法执行完成后,将锁释放。 基本用法 修饰普通方法 public clas...原创 2019-07-24 14:00:51 · 249 阅读 · 0 评论