并发/多线程
文章平均质量分 94
panyu_SMD
这个作者很懒,什么都没留下…
展开
-
Java多线程中sleep()和wait()的区别
JAVA 线程状态及转化线程状态图说明:线程共包括以下5种状态。1. 新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的...转载 2018-02-10 08:59:41 · 468 阅读 · 0 评论 -
2.知识点_volitile#Java中的关键字volitile
我们知道,在 Java 中设置变量值的操作,除了 long 和 double 类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在 JVM 1.2 之前, Java 的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着 JVM 的成熟和优化,现在在多线程环境下volatile 关键字的使用变得非常重要。在当前的 Java 内存模型下,线程可以把变量保存...原创 2017-03-17 10:58:28 · 785 阅读 · 0 评论 -
2.知识点_volatile#JAVA多线程之volatile 与 synchronized 的比较
一,volatile关键字的可见性要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下:从图中可以看出:①每个线程都有一个自己的本地内存空间--线程栈空间???线程执行时,先把变量从主内存读取到线程自己的本地内存空间,然后再对该变量进行操作②对该变量操作完后,在某个时间再把变量刷新回主内存关于JAVA内存模型,更详细的可参考:深入理解...转载 2017-03-17 11:04:32 · 305 阅读 · 0 评论 -
2.知识点#乐观锁与悲观锁——解决并发问题
引言为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有: 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看...转载 2017-03-16 10:09:29 · 361 阅读 · 0 评论 -
java4种线程池的使用
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。转载 2017-04-01 11:11:20 · 331 阅读 · 0 评论 -
ThreadPoolExecutor线程池
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我...转载 2017-04-01 11:05:22 · 352 阅读 · 0 评论 -
活动秒杀解决并发问题
一、秒杀带来了什么? 秒杀或抢购活动一般会经过【预约】【抢订单】【支付】这3个大环节,而其中【抢订单】这个环节是最考验业务提供方的抗压能力的。抢订单环节一般会带来2个问题: 1、高并发 比较火热的秒杀在线人数都是10w起的,如此之高的在线人数对于网站架构从前到后都是一种考验。 2、超卖 任何商品都会有数量上限,如何避免成功下订单买到商品的人数不超过商品转载 2017-03-30 15:52:31 · 1030 阅读 · 0 评论 -
Runnable接口 和 同步代码块synchronized
[java] view plaincopy/* 需求: 实现一个售票程序 创建线程的第二种方式:实现Runnable接口 步骤: 1,定义类实现Runnable接口 2,覆盖Runnable接口中的run方法 将线程要运行的代码存放在该run方法中转载 2017-04-01 16:49:42 · 497 阅读 · 0 评论 -
2.知识点_lock#Lock和synchronized比较详解
今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章,注意红色字体。 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从J...转载 2017-03-27 16:08:31 · 305 阅读 · 0 评论