1. 在多线程并发的场景下,使用锁来控制多个任务对同一共享资源的访问,拿到锁的任务优先访问公共资源 //并发的用户数 private static final int threadNum = 10; //倒计数器(发令抢),用于制造线程的并发执行 private static CountDownLa ...
分类:
其他好文 时间:
2018-01-30 16:39:00
阅读次数:
105
前言:多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,还是值得深入研究一下 概念: 1 线程:进程中负责程序执行的执行单元线程本身依靠程序进行运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境 2 进程:执行中的程序一个进程至少包含一个线程 3 单线程:程序中只存在一个 ...
分类:
编程语言 时间:
2018-01-25 20:46:43
阅读次数:
125
浅谈java内存模型 不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存 ...
分类:
编程语言 时间:
2018-01-16 13:50:49
阅读次数:
229
1、概念 分布式锁出现的原因:单体应用单机部署环境下,为了解决多线程并发问题,我们会使用ReentrantLcok或synchronized来解决互斥问题;但业务的需求,单机部署演变成分布式系统后,在分布式部署环境下,原单机部署使用的并发控制锁策略失效,为了解决这个问题就需要一种跨JVM的互斥机制来 ...
分类:
编程语言 时间:
2018-01-16 12:24:34
阅读次数:
174
转载两篇不错的文章: 第一篇: 前言 HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CPU利用率接近100%。 [java] view plain copy final HashMap<String, Stri ...
分类:
其他好文 时间:
2018-01-14 16:48:50
阅读次数:
256
Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进 ...
分类:
编程语言 时间:
2018-01-14 11:01:57
阅读次数:
171
异常信息:java.lang.IllegalStateException:CannotcallsendRedirect()aftertheresponsehasbeencommitted.异常原因:多线程并发导致;解决方法:需要添加scope=”prototype”这个配置;这个参数是让spring针对一个http请求创建一个Action对象;如果没有这个参数,默认的参数是值是singleton,
分类:
编程语言 时间:
2018-01-10 22:44:03
阅读次数:
178
什么是同步器? 多线程并发执行,通过某种共享状态来同步,当共享状态满足某种条件,才能触发线程开始执行操作。 AbstractQueuedSynchronizer(AQS) 这是一个抽象类,它提供多线程下不同共享模式的操作,实现它可以自定义同步器。 可以看出,ReentrantLock和Reentra ...
分类:
其他好文 时间:
2018-01-07 17:30:07
阅读次数:
126
在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销 ...
分类:
其他好文 时间:
2017-12-30 15:55:50
阅读次数:
107
开篇: 互斥还是lock Monitor Mutex 模式! Muex Monitor lock AutoEventSet ManualEventSet 后续的 ReaderWriterLock ReaderWriterLockSlim 类 表示用于管理资源访问的锁定状态,可实现多线程读取或进行独占 ...
分类:
编程语言 时间:
2017-12-26 19:08:38
阅读次数:
207