synchronized浅析
来源:互联网 发布:starbound mac 汉化 编辑:程序博客网 时间:2024/06/06 15:44
我的理解synchronized就是将线程可能扰乱的程序块包裹起来,使synchronized块中的程序不至于被分开执行,而是作为一个元操作。
看段示例:
public class Synch implements Runnable {public static void main(String args[]) {Synch mt = new Synch();Thread t1 = new Thread(mt, "t1");Thread t2 = new Thread(mt, "t2");Thread t3 = new Thread(mt, "t3");Thread t4 = new Thread(mt, "t4");Thread t5 = new Thread(mt, "t5");Thread t6 = new Thread(mt, "t6");Thread t7 = new Thread(mt, "t7");Thread t8 = new Thread(mt, "t8");Thread t9 = new Thread(mt, "t9");Thread t0 = new Thread(mt, "t0");t1.start();t2.start();t3.start();t4.start();t5.start();t6.start();t7.start();t8.start();t9.start();t0.start();}public void run() {synchronized (this) {System.out.println("_____");System.out.println("F: " + Thread.currentThread().getName());System.out.println("A: " + Thread.currentThread().getName());}}}
运行结果(某次,不确定):
_____F: t1A: t1_____F: t3A: t3_____F: t5A: t5_____F: t2A: t2_____F: t7A: t7_____F: t4A: t4_____F: t6A: t6_____F: t8A: t8_____F: t9A: t9_____F: t0A: t0
虽然数字基本无序,但是F:A:输出有序
将synchronized段注释掉,再看输出结果:
_____F: t1A: t1_____F: t3_____F: t2A: t2A: t3_____F: t9A: t9_____F: t4A: t4_______________F: t6A: t6_____F: t7F: t8A: t8A: t7F: t5_____F: t0A: t0A: t5
输出可以说是乱七八糟,线程的运行顺序完全没法控制。
- synchronized浅析
- Synchronized 浅析
- synchronized浅析
- 浅析synchronized关键字
- android synchronized浅析
- java synchronized浅析
- synchronized原理浅析
- synchronized和ReentrantLock区别浅析
- synchronized和lock比较浅析
- synchronized和lock比较浅析
- synchronized和lock比较浅析
- synchronized和lock比较浅析
- synchronized和ReentrantLock区别浅析
- 浅析java多线程之Synchronized关键字
- 【Java】Synchronized和Lock比较浅析
- java多线程:synchronized和lock比较浅析
- 浅析Java多线程synchronized关键字、wait和notify方法
- Java 锁机机制——浅析 Synchronized
- C语言4位数逆序(改)
- PHP empty() & isset()
- ZOJ 3686 线段树
- PushNotification教程–客户端到服务器(PHP)一条龙服务
- 上海云计算培训——Cloud Essential云计算精要认证培训 云计算技术 云计算概念
- synchronized浅析
- c里面使用libcurl库实现发送post并获取post到的内容
- Ie6 Ie7 双倍padding问题
- Hadoop的十大应用领域 云计算是什么 云计算技术 云计算基础 云计算概念 云计算平台
- iBaties的简单入门案例
- qt界面 “父—子”类继承,及析构关系
- 内核模块编写helloworld
- 在Ubuntu上为Android系统编写Linux内核驱动程序
- 如何在没有word的情况下查看docx文档