前面我们知道syncnized方法可以对一段代码进行资源封锁,实际上还有很多其他方法,这里总结一下
1:synchronized
2:变量volatile
3:lock接口的实现 ReentrantLock类,它有方法:lock()、unlock(),tryLock()等,注意要try……finally,防止死锁
4:ReadWriteLock接口实现 ReentrantReadWriteLock类,方法为readLock,writeLock,使用方法大致同lock接口,不过它的效率高。也要防止死锁
5:信号量 Semaphore类,信号量不同于锁,是用来实现资源分配的,但是也有锁的特性,比如连接池,保证连接池不爆炸就可以使用这个类,主要方法为:acquire(),acquire(int n),tryAcquire(),getQueueLength(),release()
6:原子对象,在jdk15后,为了简化操作,可以把一些基本类型定义为原子对象,就单线程操作了。java.util.concurrent.atomic ,作用基本同变量volatile
7:障碍器,CyclicBarrier类,让线程同步到同一个点
分享到:
相关推荐
Java资源同步Java资源同步Java资源同步Java资源同步Java资源同步Java资源同步Java资源同步Java资源同步Java资源同步
java整合discuz论坛同步注册同步登录资源打包,供大家参考参考。
Java分布式应用学习笔记03JVM对线程的资源同步和交互机制
当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。
使用hessian进行两台服务器资源之间同步实例,里面是源代码加使用说明
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...
java的线程同步机制synchronized关键字的理解_.docx
在这个实战博客中,我们将创建一个Java文件同步工具,演示如何使用Java编程语言和文件操作来实现文件和文件夹的同步功能。 以下是本实战博客的主要内容: 项目概述 准备工作 创建Java项目 设计文件同步逻辑 实现...
分布式数据库同步系统(解决中美异地机房)
基于java远程同步课堂系统设计与实现
项目概述:Chunjun Flink分布式数据同步框架是一款基于Java与Shell混合开发的高效数据同步工具。该项目包含1928个文件,其中主要采用Java语言编写,共1494个Java文件,同时融合了SQL(125个文件)、JSON(106个文件...
在功能上完全实现了资源管理器核心的浏览功能以及列表双击与目录树的同步展开和添加/删除文件时的同步刷新,另外增加了右键菜单功能! 查找、删除含有子目录的文件夹和重命名功能实现类是FileViewImpl.java,...
为了保护数据,使得两个线程互斥访问临界资源。 本代码根据生成者消费者问题,编写java线程同步代码。
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...
JAVA 范例大全 光盘 资源 书籍目录: 前言. 第1章 开发环境搭建 1 实例1 下载、安装并配置JDK 1 实例2 第一个Java程序 3 实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见...
共享资源同步 在进行多线程开发时最令人头痛的问题估计就是对共享资源的控制了吧,今天就让我们谈一谈这个问题吧。 共享资源顾名思义就是需要被多个线程使用的资源,但是很多情况下我们是不能允许多个线程同时使用这...
Java语言游戏项目实战资源包 内容概览: 这次分享为你带来了丰富的Java语言游戏项目实战资源,让你在实践中深入掌握Java语言,并开启游戏开发之旅。资源包中包括: 游戏项目代码:精心挑选了多个经典的小游戏项目...
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。 java.text.spi java.text 包中类的服务提供者类。 java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间...
本资源包含两个 pdf 文档,一本根据 Jakob Jenkov 最新博客 (http://tutorials.jenkov.com/java-util-concurrent/index.html) 整理的 java_util_concurrent_user_guide_en.pdf,一个中文翻译的 java_util_concurrent...
WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...