并发
fengzhuzhigu
这个作者很懒,什么都没留下…
展开
-
进程与线程的区别
看了一遍排在前面的答案,类似”进程是资源分配的最小单位,线程是CPU调度的最小单位“这样的回答感觉太抽象,都不太容易让人理解。做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运行)一个进程可以包含多个线程(一辆火车可以有多个车厢)不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘)同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一列火原创 2020-05-11 09:43:54 · 185 阅读 · 0 评论 -
Map详解以及常见面试题
HashMap详解以及常见面试题一、概要本文先会将hashmap的基本概念属性梳理一遍后,再从增删改查方法中每个步骤逐一解释说明。力求达到通熟易懂,逻辑清晰,便于加深印象。二、概念首先Hashmap的底层数据结构是由数组+链表组成的,是线程不安全,允许key和value为null。底层结构数组叫哈希桶,而桶内则是链表,链表中的节点Node存放着实际的元素。Hashmap中获取元素时的主...原创 2020-03-02 23:32:16 · 675 阅读 · 0 评论 -
JAVA面试题 线程的生命周期包括哪几个阶段?
面试官:您知道线程的生命周期包括哪几个阶段?应聘者:线程的生命周期包含5个阶段,包括:新建、就绪、运行、阻塞、销毁。新建:就是刚使用new方法,new出来的线程;就绪:就是调用的线程的start()方法后,这时候线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行;运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能;阻塞:在运行状态的...原创 2020-04-08 21:38:05 · 1395 阅读 · 0 评论 -
读写锁
1.基本讲解与使用① ReadWriteLock同Lock一样也是一个接口,提供了readLock和writeLock两种锁的操作机制,一个是只读的锁,一个是写锁。读锁可以在没有写锁的时候被多个线程同时持有,写锁是独占的(排他的)。 每次只能有一个写线程,但是可以有多个线程并发地读数据。所有读写锁的实现必须确保写操作对读操作的内存影响。换句话说,一个获得了读锁的线程必须能看到前一个释放的写锁...原创 2020-04-02 09:50:14 · 202 阅读 · 0 评论 -
Java线程池七个参数详解
java多线程开发时,常常用到线程池技术,这篇文章是对创建java线程池时的七个参数的详细解释。从源码中可以看出,线程池的构造函数有7个参数,分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler。下面会对这7个参数一一解释。一、corePoolSize 线程池核心线程大小线程池中...原创 2020-04-02 08:52:09 · 2158 阅读 · 2 评论 -
wait、notify和notifyAll
生产者消费者模型是我们学习多线程知识的一个经典案例,一个典型的生产者消费者模型如下: public void produce() { synchronized (this) { while (mBuf.isFull()) { try { wait(); ...原创 2020-04-01 10:59:29 · 271 阅读 · 0 评论 -
线程结束的三种方式
停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。在 Java 中有以下 3 种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。使用 stop() 方法强行终止线程,但是不推荐使用这个方法,该方法已被弃用。使用 interrupt 方法中断线程。1.程序跑完退出(略)2. 使用stop()退出线程...原创 2020-04-01 09:58:31 · 2109 阅读 · 0 评论 -
sychronized与lock
sychronized是java的关键字,而lock是一个类sychronized获取锁的时候,假设A线程获得锁,B线程等待,若A阻塞,B会一直等待;而lock在这种情况下B会尝试去获取锁sychronized的锁的状态是无法判断的,而lock是可以判断的sychronized与lock都是对象锁,都支持重入锁lock可以实现sychronized不具备的特性,如响应中断,支持超时,非阻...原创 2020-03-28 12:42:33 · 589 阅读 · 0 评论 -
线程池
一. 线程池简介线程池的概念:线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。线程池的工作机制在线程池的编程模式下,任务是提交给整个线程池,而不是直接提交给某个线...原创 2020-03-28 12:40:35 · 148 阅读 · 0 评论 -
happens-before规则02
happens-before规则摘录自:java 并发编程的艺术原创 2020-02-09 23:57:58 · 91 阅读 · 0 评论