多线程
多线程问题
F道人
若目标是远方,便只顾风雨兼程!
展开
-
并发编程(八):乐观锁与悲观锁详解(面试必问)
悲观锁与乐观锁悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和Reentran...原创 2020-04-19 00:43:38 · 219 阅读 · 0 评论 -
并发编程(七):AQS框架(实现锁机制的AQS框架你了解多少)
AQS(一种实现锁机制的框架,也可以说一些基类组合构建锁和同步器)一:基本概念AQS框架:全称AbstractQueuedSynchronizer。(抽象队列同步)AQS是一个用来构建锁和同步器的(各种基类)框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLoc...原创 2020-04-18 22:58:03 · 724 阅读 · 0 评论 -
并发编程(六):Atomic 原子类(面试详解)
一:什么是原子类Atomic 是指一个操作是不可中断的,即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。基本类型使用原子的方式更新基本类型AtomicInteger:整形原子类 AtomicLong:长整型原子类 AtomicBoolean:布尔型原子类数组类型使用原子的方式更新数组里的某个元素AtomicIntegerArray:整形...原创 2020-04-17 23:52:17 · 1315 阅读 · 0 评论 -
并发编程(五):线程池的实现以及底层原理
一:什么是线程池池化技术:减少每次获取资源的消耗,提高对资源的利用率。例如线程池、数据库连接池、Http 连接池等等。使用线程池的好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用...原创 2020-04-17 23:44:03 · 265 阅读 · 0 评论 -
并发编程(四):ThreadLocal底层原理详解
一:TreadLocal基本概念ThreadLocal类主要解决的就是让每个线程绑定自己的值,可以将ThreadLocal类形象的比喻成存放数据的盒子,盒子中可以存储每个线程的私有数据。如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的本地副本,这也是ThreadLocal变量名的由来。他们可以使用get()和set()方法来获取默认值或将其值...原创 2020-04-17 00:05:23 · 1326 阅读 · 1 评论 -
并发编程(二):Synchronized关键字(面试最全讲解)
Synchronized 的基本概念?Synchronized 在项目中怎么使用?Synchronized 的底层实现?Synchronized JDK1.6版本有哪些优化?Synchronized 与ReentrantLock的区别?一:基本概念Synchronized:是JVM层次上的锁(监视器锁),可重入,非公平锁。synchronized...原创 2020-04-16 06:15:29 · 196 阅读 · 0 评论 -
java多线程和并发基础面试题
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务转载 2017-12-05 23:40:04 · 174 阅读 · 0 评论