源于一个想法:比如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资源同步Java资源同步Java资源同步Java资源同步Java资源同步Java资源同步
java线程同步java线程同步java线程同步
Java文件同步开源项目Sync 使用简单的命令即可完成文件系统的同步,可以在其上自己包装业务 含源码和jar
尽管常常听说同步方法调用的开销是非同步方法调用开销的 50 倍,这个数字实际上仍然相当容易产生误导。JVM 的每个后继版本在整体性能上的提高和无争用同步代价的降低使得无争用同步开销问题不再显得那么突出。但争用...
内部java实现多个数据库,保持数据同步案例。
java使用datax增量同步代码,直接放到项目可使用,支持增量,全量可配置,同步一张表只需添加一条记录
java 多线程同步方法的实例 java 多线程同步方法的实例 java 多线程同步方法的实例
Java 对多线程的支持与同步机制深受大家的喜爱,似乎看起来使用了synchronized 关键 字就可以轻松地解决多线程共享数据同步问题。到底如何?――还得对synchronized 关键字 的作用进行深入了解才可定论。 总的说来,...
两个mysql数据库之间实现同步,通过定时任务实现从主库到从库的同步,java代码实现,所有java项目包括配置都有,数据结构可以跟据自己的特定情况去改
同步不同数据库之间的数据,比如postgresql到oracle,oracle到oracle,不限于此,支持自己配置。 实现思路: 在主线程中创建若干子线程,每个子线程分别用来同步一张数据表,提供web页面,监控各个子线程运行状况,...
java同步大杀器concurrent 包java同步大杀器concurrent 包java同步大杀器concurrent 包java同步大杀器concurrent 包java同步大杀器concurrent 包java同步大杀器concurrent 包java同步大杀器concurrent 包java同步大...
java数据实时同步系统,把远程数据库数据实时同步到本地数据库
介绍了基于系统底层通信技术socket,JAVA IO同步,异步,阻塞,非阻塞;
Java 线程同步调用的使用,以及同步方法的调用!
java线程同步实例,哲学家思考的代码实现,应该是一个比较好的例子
java数据库表同步 及 读写txt文件
后台jdbc java 增删改查 数据同步
关于线程同步 synchronize,需要牢牢记住的第一点是:线程同步就是线程排队。同步就是排队。线程同步的目的就是避免线程“同步”执行。
java编程实现一个同步序列密码(流密码)的加密/解密系统
ACCP5.0 JAVA方法调用万年历!采用方法调用的形式来做的万年历·····