Writing topic

# 多线程与并发

沿着这个关键词,继续往里看。

2 MIN

15.多线程打印

一道面试中常考的并发编程的代码题: 三个线程T1、T2、T3轮流打印ABC,打印n次,如ABCABCABCABC……. 两个线程交替打印1-100的奇偶数 N个线程循环打印1-100 …… 其实这类问题本质上都是线程通信问题,思路基本上都是一个线程执行完毕,阻塞该线程,唤醒其他线程,按顺序执行下一个…

多线程与并发
6 MIN

14.ReentrantLock实现公平锁和非公平锁

准备知识 理想情况下,线程A拿到锁,执行完后释放锁,线程B恰好到来顺手接下这把锁,一切都那么完美的话,也没必要加锁了,问题就在于在A没释放锁时,后续线程也想得到这把锁,所以只好让这些等待的线程进行排队,进而需要一套数据结构来组织这个队伍: Node结点:作为获取锁失败线程的包装类, 组合了Threa…

多线程与并发
9 MIN

13.线程安全

4种解决线程安全问题的方式 前言 线程安全问题,在做高并发的系统的时候,是程序员经常需要考虑的地方。怎么有效的防止线程安全问题,保证数据的准确性?怎么合理的最大化的利用系统资源等,这些问题都需要充分的理解并运行线程。当然关于多线程的问题在面试的时候也是出现频率比较高的。下面就来学习一下吧! 线程 先…

多线程与并发
11 MIN

12.ThreadLocal 分析

ThreadLocal的数据结构 类有一个类型为 的实例变量 ,也就是说每个线程有一个自己的 。 有自己的独立实现,可以简单地将它的 视作 , 为代码中放入的值(实际上 并不是 本身,而是它的一个 弱引用 )。 每个线程在往 里放值的时候,都会往自己的 里存,读也是以 作为引用,在自己的 里找对应的…

多线程与并发
8 MIN

10.Java内存模型

Java内存模型(JMM) JVM内存模型指的是JVM的内存分区;而java内存模型是一种虚拟机规范 JMM就是Java内存模型(Java Mermory Model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。 所以Ja…

多线程与并发
8 MIN

10.ThreadLocal

ThreadLocal介绍 官方介绍 从Java官方文档中描述:ThreadLocal类用来提供线程内部局部变量,这种变量在多线程环境下访问(通过get 和set 方法访问)时能保证各个线程的变量相对于独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,…

多线程与并发
10 MIN

9.synchronized、Lock、volatile

概述 java的内存模型 每个线程都有自己的本地内存空间(java栈中的帧),线程执行时,先把变量从内存读到线程自己的本地内存空间,然后对变量进行操作 对该变量操作完成后,在某个时间再把变量刷新回主内存 锁提供的两种特性: 互斥(mutual exclusion) 和可见性(visibility)…

多线程与并发
5 MIN

8.CAS & ABA & AQS

CAS 什么是CAS 指比较并交换。CAS算法CAS(V,E, N)包含3个参数,V表示要更新的变量,E表示预期的值,N表示新值。在且仅在V值等于 E值时,才会将V值设为 N,如果 V值和 E值不同,则说明已经有其他线程做了更新,当前线程什么都不做。最后,CAS返回当前V的真实值。 CAS的特性:乐…

多线程与并发
10 MIN

7.线程上下文切换与阻塞队列

线程上下文切换 CPU利用时间片轮询来为每个任务都服务一定的时间,然后把当前任务的状态保存下来,继续服务下一个任务。任务的状态保存及再加载交做线程的上下文切换。 进程: 指一个运行中的程序的示例。在一个进程内部可以有多个线程在同时运行,并与创建它的进程共享同一个地址空间(一段内存区域)和其他资源。…

多线程与并发
23 MIN

6.java中的锁

Java中的锁 java中的锁主要用于保障多并发线程情况下数据的一致性,在多线程编程中为了保障数据的一致性,我们通常需要在使用对象或者方法之前加锁,这是如果有其他线程也需要使用该对象或者该方法,则首先要获得锁,如果某个线程发现锁正在被其他线程使用就会进入阻塞队列,等待锁的释放,知道其他线程执行完成并…

多线程与并发
12

Ask Leslie

从本站公开文章中寻找答案。当前版本在浏览器本地检索,不上传问题,也不会编造不存在的经历。

输入一个问题,我会把你带到 Leslie 写过的相关内容。

微信联系

Leslie Zhang 的微信二维码

扫码添加 Leslie,建议备注你的名字与来意。