synchronized修饰方法,保证数据同步准确性,限制线程互斥访问
来源:互联网 发布:软件著作权的源代码 编辑:程序博客网 时间:2024/05/20 04:46
1.未加synchronized关键,造成访问顺序混乱
package thread;/** * @author xiaolong.zhu.baby@qq.com created on 2015/2/6. */public class Test extends Thread { public void jump() { for (int i = 0; i < 100; i++) { if(i%10==0)
System.out.println(); System.out.print(" "+this.currentThread().getName() + ":" + i + "\t"+" "); } } @Override public void run() { jump(); } public static void main(String[] args) { Test test = new Test(); Thread a = new Thread(test, "A"); Thread b = new Thread(test, "B"); a.start(); b.start(); }}
运行结果:
2. 添加synchronized进行互斥访问可以解决数据不同步的问题
package thread;/** * @author xiaolong.zhu.baby@qq.com created on 2015/2/6. */public class Test extends Thread { public synchronized void jump() { for (int i = 0; i < 100; i++) { if(i%10==0)
System.out.println(); System.out.print(" "+this.currentThread().getName() + ":" + i + "\t"+" "); } } @Override public void run() { jump(); } public static void main(String[] args) { Test test = new Test(); Thread a = new Thread(test, "A"); Thread b = new Thread(test, "B"); a.start(); b.start(); }}
运行结果:
总结:使用了synchronized可以使一个线程运行完synchronized所修饰的方法,其他需要排队等候,可以保证数据的准确性。
0 0
- synchronized修饰方法,保证数据同步准确性,限制线程互斥访问
- 同步互斥访问 - synchronized关键字
- 线程同步与互斥 synchronized()
- 线程的同步互斥synchronized
- 关于java synchronized修饰方法时实现线程互斥遇到的问题
- synchronized 修饰的方法无法实现互斥的问题解决
- 线程互斥 Synchronized
- 多线程——线程同步互斥(synchronized)
- Java保证两个方法互斥的方式,多线程同步
- synchronized互斥与同步
- synchronized关键字修饰对象锁,同步与非同步对该方法的访问及修改
- 线程同步互斥的控制方法
- 线程同步互斥的控制方法
- 线程同步互斥的控制方法
- 线程同步互斥的控制方法
- 线程同步互斥的控制方法
- 线程同步互斥的控制方法
- 线程同步互斥的控制方法
- [转载]9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
- MySQL等数据库整理(2)
- C程序的内存布局(Memory Layout)
- 数据库分库分表系列文章
- POJ 1053 Integer Inquiry && HDOJ 1047 Integer Inquiry (大数加法)
- synchronized修饰方法,保证数据同步准确性,限制线程互斥访问
- 干扰数
- Android中获取SD卡下的图片资源
- 线程调度算法
- 在Android Studio上搭建Robotium测试环境
- 用Win32实现带分割条(Splitter)的窗口
- 输出前十位的Fibonacci 数列
- C语言学习笔记之格式化输出%p
- 动漫推荐之Free!