- 浏览: 1574614 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
import java.util.Random; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; /** * 读写锁 , 读写 互斥 ,写写互斥 ,对于读 比 写频繁的时候 ,优势比较明显 */ public class ReadWriteLockTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub final Queue q=new Queue(); for (int i = 0; i < 3; i++) { new Thread(new Runnable(){ @Override public void run() { while(true){ q.get(); } } }).start(); new Thread(new Runnable(){ @Override public void run() { while(true){ q.put(new Random().nextInt()); } } }).start(); } } } class Queue{ private Object data=null; //共享数据,只能有一个线程能写该数据,但是可以有多个线程同时读该数据. ReadWriteLock rwl=new ReentrantReadWriteLock(); public void get(){ rwl.readLock().lock(); System.out.println(Thread.currentThread().getName()+" be ready to read data!"); try { Thread.sleep((long)Math.random()*1000); } catch (Exception e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+" have read data"+data); rwl.readLock().unlock(); } public void put(Object data){ rwl.writeLock().lock(); System.out.println(Thread.currentThread().getName()+" be ready to write data!"); try { Thread.sleep((long)Math.random()*1000); } catch (Exception e) { e.printStackTrace(); } this.data=data; System.out.println(Thread.currentThread().getName()+" have write data:"+data); rwl.writeLock().unlock(); } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 948public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2234经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5600package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 915import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1025/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 963//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1792更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1374import java.util.HashMap; ... -
java 多个线程之间同步通信
2016-08-02 17:16 2371import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 885// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1133import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 768import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1114import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3850import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 931/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 983import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1805Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 968/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2181package out; import ja ... -
java术语(PO/POJO/VO/BO/DAO/DTO)
2014-11-27 11:45 1947PO(persistant object) 持久 ...
相关推荐
java 读写锁实例代码,付简单注释,测试完整。
主要介绍了Java 读写锁实现原理浅析,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
本ppt介绍了排它锁等,源码深度理解读写锁,希望对大家有帮助!!!!!!!!!!!!!!!!!!!!!!!!!!!!
关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java实现及思考关于读写锁算法的Java...
本篇文章给大家详细分享了Java编程读写锁的相关原理以及知识点内容,有兴趣的朋友们可以参考下。
主要介绍了举例说明Java多线程编程中读写锁的使用,文中的例子很好地说明了Java的自带读写锁ReentrantReadWriteLock的使用,需要的朋友可以参考下
Java readwritereentrantlock读写锁源码分析
本文实例讲述了C#解决SQlite并发异常问题的方法。分享给大家供大家参考,...作者利用读写锁(ReaderWriterLock),达到了多线程安全访问的目标。 using System; using System.Collections.Generic; using System.Text;
基于zookeeper实现的分布式读写锁,用Zkclient客户端实现
主要介绍了Java多线程编程之读写锁ReadWriteLock用法实例,本文直接给出编码实例,需要的朋友可以参考下
读写锁ReentrantReadWriteLock&StampLock详解_e读写锁ReentrantReadWriteLock&StampLock详解_e读写锁ReentrantReadWriteLock&StampLock详解_e读写锁ReentrantReadWriteLock&StampLock详解_e读写锁...
本文主要介绍java多线程的知识,这里整理了相关资料及简单示例代码,有兴趣的小伙伴可以参考下
Java的两种读写锁介绍
各种锁汇总,乐观锁、悲观锁、分布式锁、可重入锁、互斥锁、读写锁、分段锁、类锁、行级锁等
主要介绍了Java并发编程之重入锁与读写锁,文中相关实例代码详细,测试可用,具有一定参考价值,需要的朋友可以了解下。
通过redisson实现分布式锁 通过curator框架实现共享锁,读写锁 项目下载下载,启动本地redis和zookeeper即可; 代码供大家参考,如有不对的地方希望大家指出来。
//释放所获取的锁2) 然后还需要定义一个读写锁的接口,这个接口的作用就是定义读写锁的特性//获取当前有多少线程正在执行写操作int getWritingWri
主要介绍了Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁,本文讲解了ReentrantLock概况、Lock接口、Lock使用、轮询锁的和定时锁、公平性、可中断获锁获取操作等内容,需要的朋友可以参考下
Java提供了多种类型的锁,包括 `synchronized` 块,可重入锁,读写锁和印章锁等。这些锁可以用来控制对共享资源的访问,从而保证数据一致性和线程安全。 在程序中使用锁需要注意锁定的粒度和时长,过大的锁粒度或...
一、公平锁/非公平锁,二、可重入锁,三、独享锁/共享锁,四、互斥锁/读写锁