并发问题资料
skiof007
http://my.csdn.net/lifetragedy
展开
-
第二十五章 离线并发与锁机制
离线并发的来源 在Web项目中,离线并发显得尤其严重。例如,用户A和用户B同时修改数据库中的某张表的R行,加入R行有两个字段分别是C1,C2。 假如按照如下过程修改: 1 用户A将数据R(C1,C2)读取到A的浏览器中。 2 用户B将数据R(C1,C2)读取到B的浏览器中。 3 用户A在浏览器上将数据修改为R(C1’,C2),同时更新到数据库。 4 用户B在浏览器上将数据修改为R(C1,C2’),同时更新到数据库转载 2011-01-14 13:52:00 · 333 阅读 · 0 评论 -
Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)
一、重量级锁 上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchron...转载 2018-08-21 10:02:40 · 296 阅读 · 0 评论 -
volatile原理 使用条件
有时仅仅为了读写一个或者两个实例域就使用同步的话,显得开销过大,volatile关键字为实例域的同步访问提供了免锁的机制。如果声明一个域为volatile,那么编译器和虚拟机就知道该域是可能被另一个线程并发更新的。再讲到volatile关键字之前我们需要了解一下内存模型的相关概念以及并发编程中的三个特性:原子性,可见性和有序性。 1. java内存模型与原子性,可见性和有序性 Java转载 2016-09-29 10:18:47 · 365 阅读 · 0 评论 -
CountDownLatch
CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 主要方法 public CountDownLatch(int count); public void countDown(); public void await() throws InterruptedException 构造方法参数指定转载 2016-07-20 10:55:24 · 243 阅读 · 0 评论 -
volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模转载 2016-04-12 16:06:01 · 281 阅读 · 0 评论 -
Lock与synchronized 的区别
多次思考过这个问题,都没有形成理论,今天有时间了,我把他总结出来,希望对大家有所帮助 1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不转载 2015-12-21 10:38:46 · 335 阅读 · 0 评论 -
数据库锁定策略
数据库锁定策略是应用程序开发中最为复杂的领域,也是可靠的应用程序性能和行为最关键的因素之一。本文将介绍有关何时以及如何使用不同的锁定策略的一些基本问题、常用策略和一般性建议。 摘自 IBM WebSphere 开发者技术期刊。 引言 作为多用户应用程序开发人员所面临的最为复杂的领域之一,基于服务器的系统必须处理好锁定策略的影响。如果实现得不好,将导致包括性能问题、死锁以及异常的应用程序行转载 2012-09-13 13:34:33 · 1926 阅读 · 0 评论 -
TOMCAT SESSION的持久化方法
Tomcat5.5.12 实现Session持久化的配置: 为什么要持久化SESSION: 在客户端每个用户的Session对象存在Servlet容器中,如果Tomcat服务器重起/当机的话该session就会丢失,而客户端的操作应为session的丢失而造成数据丢失,而且当前用户访问量巨大,每个用户的Session里存放大量的数据的话,那么就很占用服务器大量的内存,从而是服务器的性能受到影转载 2012-05-15 10:40:19 · 565 阅读 · 0 评论 -
Xmemcached——比spymemcached更快
Xmemcached是一个高性能的基于java nio的memcached客户端。在经过三个RC版本后,正式发布1.10-final版本。 xmemcached特性一览: 1、高性能 2、支持完整的memcached文本协议,二进制协议将在1.2版本实现。 3、支持JMX,可以通过MBean调整性能参数、动态添加/移除server、查看统计等。 4、支持客户端统计 5、支持mem转载 2012-05-14 11:11:54 · 1468 阅读 · 0 评论 -
Memcached缓存技术
Memcached缓存技术 在开始接触memcached的时候并不了解它是什么,有什么作用。然后就在网上查阅的许多资料,但是网上资料太多又不是很清楚、全面。所以就是整合了网上诸多资料做了一下总结。 Memcached介绍 1.memcached是什么? memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首转载 2012-01-12 14:40:12 · 1150 阅读 · 0 评论 -
java多线程例子
<br />这里我们做一个完整的例子来说明线程产生的方式不同而生成的线程的区别: <br />package debug;import java.io.*;import java.lang.Thread;class MyThread extends Thread{ public int x = 0; public void run(){ System.out.println(++x); }}class R implements Runnable{ private int x = 0; pub转载 2011-03-14 14:36:00 · 432 阅读 · 0 评论 -
Java 关于线程同步的问题
相关文章: 线程池嵌套线程池的控制应用(servlet程序控制新线程池)关于writer中锁的问题各位老大,帮忙找一下下错嘛<br />推荐圈子: 90后的java开发<br />更多相关推荐<br /><br /> Java 线程同步问题也不是什么新鲜问题了,这里做一个总结吧。<br /> <br /> <br /> 线程同步时,调用一个 synchronized 的方法,所有的 synchronized 的方法都被锁定,其他的方法不受影响。<br /> <br />看一个例子:<b转载 2011-03-12 11:37:00 · 504 阅读 · 0 评论 -
Java 并发编程:volatile的使用及其原理
一、volatile的作用 在《Java并发编程:核心理论》一文中,我们已经提到过可见性、有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果对Synchronized原理有了解的话,应该知道Synchronized是一个比较重量级的操作,对系统的性能有比较大的影响,所以,如果有其他解决方案,我们通常都避免使用Synchronized来解决问题...转载 2018-08-21 10:12:18 · 233 阅读 · 0 评论