![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
whnrll
只要你现在努力,就为时不晚!
展开
-
Java处理高并发量访问的处理总结
结合之前做的一个网站,项目中分了几个子项目,主要用到Redis,service(server)层和control层分离,有做了缓存,页面也是进行静态化(htm和freemarker),仔细想想,整个项目基本吻合高并发,负载均衡的处理。在网上找了些资料,基本和项目的特点吻合,特别纪念一下,但是后面的一些特征似乎还没理解。大概就是这几方面吧一个小型的网站,可以使用最简单的html静态页面就实现...转载 2019-03-02 09:37:26 · 309 阅读 · 0 评论 -
Java多线程(一):JMM内存模型、volatile、synchronized、Lock锁、重入锁ReentrantLock 原理
前言:1、多线程有什么用?(1)发挥多核CPU的优势:单核CPU上的"多线程"那是假的多线程,同一时间CPU处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程"同时"运行罢了。多核CPU上的多线程才是真正的多线程,它能让你的多段逻辑同时工作,多线程,可以真正发挥出多核CPU的优势来,达到充分利用CPU的目的。(2)防止阻塞:从程序运行效率看,如果CPU使用策略不...转载 2019-03-06 13:24:42 · 295 阅读 · 0 评论 -
Java并发编程-并发工具包java.util.concurrent使用指南
Java并发编程-并发工具包java.util.concurrent使用指南1. java.util.concurrent - Java并发工具包Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前,你需要自己去动手实现自己的相关工具类。本文我将带你一一认识...转载 2019-03-16 14:26:34 · 240 阅读 · 0 评论 -
多线程互锁现象与等待唤醒机制
1,互锁现象上一部分介绍了通过同步的方法来解决多线程操作共享数据时的安全问题,然而同步也有相应的缺点:效率降低 出现互锁现象效率问题就不在多说了,同步固有的问题;那么什么是互锁现象了;介绍一个场景: 周末到了,玉皇大帝一男一女两个神仙道地球上去寻找最后两个幸存者:why,male; jr,female;来让他们创造人类,并且说了,谁先找齐两个人类,将会升官涨工资;他们彼...转载 2019-03-16 14:26:23 · 325 阅读 · 0 评论 -
多线程数据安全问题与三种解决方式
1,多线程数据安全问题引入 多线程可以提高程序的使用率,也可以提高cpu的使用使用率,同时也会带来一些弊端,比如:数据安全问题 今天我们就先说一下多线程会产生什么样的数据安全问题;在讲之前,我们需要明确:cpu执行的操作是原子性的,是不可拆分的 这里说的数据安全针对的数据是多个线程共享的数据,所以我们会使用在第一部分中说的方式2来实现多线程 由此,我...转载 2019-03-16 14:26:17 · 1066 阅读 · 0 评论 -
Java并发编程:阻塞队列
Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(Linke...转载 2019-03-13 12:56:07 · 118 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarr...转载 2019-03-13 12:56:02 · 104 阅读 · 0 评论 -
Java并发编程:Timer和TimerTask
Java并发编程:Timer和TimerTask 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样: 1 2 3 4 5 6 Timer timer =newTimer(); timer.schedule(new...转载 2019-03-13 12:55:55 · 131 阅读 · 0 评论 -
Java并发编程:Lock
Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐...转载 2019-03-13 12:56:17 · 109 阅读 · 0 评论 -
ReentrantLock实现原理深入探究
前言这篇文章被归到Java基础分类中,其实真的一点都不基础。网上写ReentrantLock的使用、ReentrantLock和synchronized的区别的文章很多,研究ReentrantLock并且能讲清楚ReentrantLock的原理的文章很少,本文就来研究一下ReentrantLock的实现原理。研究ReentrantLock的实现原理需要比较好的Java基础以及阅读代码的能力,有...转载 2019-03-13 12:56:24 · 129 阅读 · 0 评论 -
Executor框架、线程池、ThreadLocal、乐观锁、悲观锁、无锁CAS 原理
一、Executor框架:1、什么是Executor框架:Executor就是一个任务的执行和调度框架,将任务的提交过程与执行过程解耦,用户只需定义好任务提交,具体如何执行,什么时候执行不需要关心;其中,最顶层是Executor接口,它的定义很简单,只有一个用于执行任务的execute方法。Executor框架主要由3大部分组成:(1)任务:实现Callable接口或Runnable接...转载 2019-03-06 13:24:26 · 398 阅读 · 0 评论