源于一个想法:比如java中的一个方法
public static void method(){
// ....code
}
是否在前面简单的加上synchronized 就可以实现同步了呢,java真的能帮我们实现吗?
/........................................./
加上synchronized :
public synchronized static void method(){
// ....code
}
/........................................./
我总是不怎么相信,也不确定,这样简单的加上synchronized就能使多线程同步了。但下面的测试让我确定,确实,只要这么简单的做,java就可以实现多线程的同步了。下面看测试代码:
/**
* 测试java多线程的同步,使用5个线程调用载体方法。
*
* 测试用例1:给载体方法加上synchronized修饰词(如程序中)。
* 结果:载体方法被同步,每秒打印一条记录;
*
* 测试用例2:去掉载体方法的synchronized修饰词(请自己试下)。
* 结果:载体方法没有被同步,5条记录很快打印完。
*
* 结论:可想而知!给static方法添上synchronized修饰词,方法就被同步。
* @author ayis
*
* Jan 13, 2009
*/
public class TestSynchronized {
public static void main(String args[]){
// 开启5个线程调用载体方法
TestSynchronized.mutilThreadInvoke(5);
}
/**
* 同步的载体方法
*/
public synchronized static void method(){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("method print. time:"+System.currentTimeMillis());
}
/**
* 多线程调用载体方法
* @param n:调用线程的数目
*/
public static void mutilThreadInvoke(int n){
for(int i=0 ; i < n ; i++){
new Thread(
new Runnable(){
@Override
public void run() {
// 调用载体方法
TestSynchronized.method();
}
}
).start();
}
}
}
分享到:
相关推荐
Java异步调用转同步方法实例详解 Java异步调用转同步方法实例详解是指在Java中将异步调用转换为同步调用的技术,主要用于解决异步调用过程中的阻塞问题。异步调用是一种非阻塞的调用方式,调用方在调用过程中,不...
【Java文件同步开源项目Sync】是一个基于Java语言开发的实用工具,主要目的是提供高效、可靠的文件和目录同步功能。这个开源项目为开发者提供了一个简单易用的命令行接口,允许用户方便地对本地或远程文件系统进行...
【Java 同步方法】是Java编程中...总之,理解和优化Java同步方法的使用,是提高多线程应用程序性能和可伸缩性的核心。通过精细调整同步策略,可以有效地减少争用,提升并发性能,从而让程序在高负载环境下表现更佳。
在Java中,实现多数据库同步的方法有很多,以下是一些常用的技术和策略: 1. **触发器和存储过程**:在每个数据库中设置触发器,当数据发生变化时,触发器会调用存储过程,将更改发送到其他数据库。然而,这种方法...
Java 使用 DataX 进行增量同步是大数据领域中常见的数据迁移任务,DataX 是阿里开源的一个强大、高效的数据同步工具,它可以实现不同数据存储之间的数据迁移。本篇将详细讲解如何在 Java 项目中利用 DataX 实现增量...
Java 线程同步控制机制 线程同步是 Java 编程中的一种机制,用于控制多个线程之间的资源访问顺序,以避免线程之间的冲突和数据不一致。线程同步的目的就是避免线程“同步”执行,即让多个线程之间排队操作共享资源...
数据库同步工具:基于Java开发,包含22个文件,包括9个Java类文件、2个Markdown文档、2个JAR包文件、2个XML配置文件、2个Properties配置文件、1个.gitignore文件、1个LICENSE文件、1个PNG图像文件、1个GIF图像文件、...
在Java中,实现线程同步最常用的方法之一是通过同步方法。在上述代码示例中,`MyThread`类中的`Sell()`方法被声明为`synchronized`。这意味着该方法在执行时会自动锁定当前对象实例,即`this`关键字。当一个线程正在...
Java数据实时同步系统是一种用于在不同数据库之间进行实时数据交换的技术解决方案。这种系统的主要目标是确保数据的一致性和完整性,特别是在分布式环境中,当数据需要在远程数据库和本地数据库之间频繁流动时。以下...
### Java同步机制浅谈 #### synchronized关键字的作用及应用 在Java多线程环境中,`synchronized`关键字扮演着至关重要的角色。它可以帮助开发者确保多线程环境下的数据一致性,防止因并发访问导致的数据错误。本...
Java中的`synchronized`关键字是用于实现线程同步的关键机制,主要目的是解决多线程环境下的数据安全问题。当多个线程访问共享资源时,如果没有适当的同步控制,可能会导致数据不一致或者竞态条件等问题。线程同步...
下面我们将深入探讨如何使用Java实现两个MySQL数据库之间的数据同步,以及涉及的相关知识点。 首先,我们需要理解MySQL的复制原理。MySQL的主从复制是基于日志的,主库上的所有更改都会被记录到二进制日志(binlog...
1. **JDBC(Java Database Connectivity)**:Java与数据库交互的主要接口,提供了连接、查询、更新和关闭数据库等方法。在同步过程中,JDBC是基础,通过建立连接,执行SQL语句来获取或更新数据。 2. **数据库连接...
### Java资源同步详解 在Java开发中,资源同步是一个非常重要且常见的问题,尤其是在多线程环境中,合理地管理资源能够有效提升程序的稳定性和效率。根据提供的标题与描述,本次将深入探讨“Java资源同步”的相关...
本文将深入探讨如何使用Java的JDBC(Java Database Connectivity)接口与MongoDB、MySQL数据库进行数据交互,并实现相互之间的数据同步。 首先,我们需要理解JDBC,它是Java语言访问数据库的标准API,能够连接并...
Java同步网络时间是一个常见的任务,尤其对于需要时间精确性的应用来说非常重要。这个任务可以通过Java的NTP(Network Time Protocol)库来实现。NTP是一种互联网协议,用于在计算机之间同步时间,确保网络上的设备...
这篇博客“转 Java校正电脑时间(java 时间同步)”主要探讨了如何在Java中实现这一功能。 首先,Java中的日期和时间API包括`java.util.Date`、`java.util.Calendar`,以及从Java 8开始引入的更现代的`java.time`包。...
Java作为一种强大的多线程编程语言,提供了丰富的API来支持进程同步。本篇文章将深入探讨如何使用Java实现“生产者-消费者”问题的进程同步。 生产者-消费者问题是多线程设计模式中的一个经典案例,它模拟了两个...
### Java中的同步与异步知识点详解 在Java编程语言中,同步(Synchronization)与异步(Asynchronization)是两个非常重要的概念,它们对于多线程处理和并发控制有着不可替代的作用。本文将深入探讨这两个概念的...
本文将深入探讨Java中的多线程同步方法,并通过实例来阐述其工作原理。 首先,我们要理解线程同步的基本概念。在多线程环境中,当多个线程试图访问同一资源时,如果没有适当的同步控制,可能会导致不可预测的结果。...