线程安全:

线程安全的方法一定是排队运行的。

public class SyncObject {synchronized public void methodA() {try {System.out.println("begin methodA threadName = " +Thread.currentThread().getName());Thread.sleep(5000);System.out.println("end");} catch (InterruptedException e) {e.printStackTrace();}}}public class SyncThreadA extends Thread{private SyncObject object;public SyncThreadA(SyncObject object) {this.object = object;}@Overridepublic void run() {super.run();object.methodA();}
}public class SyncThreadB extends Thread{private SyncObject object;public SyncThreadB(SyncObject object) {this.object = object;}@Overridepublic void run() {super.run();object.methodA();}
}public class ThreadRunMain {public static void main(String[] args) {testSyncThread();}public static void testSyncThread(){SyncObject object = new SyncObject();SyncThreadA a = new SyncThreadA(object);a.setName("A");SyncThreadB b = new SyncThreadB(object);b.setName("B");a.start();b.start();}}

运行结果:

如果去掉synchronized,运行结果:

转载于:https://www.cnblogs.com/AK47Sonic/p/7710062.html

Java 学习笔记之 线程安全相关推荐

  1. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  2. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

  3. 0040 Java学习笔记-多线程-线程run()方法中的异常

    run()与异常 不管是Threade还是Runnable的run()方法都没有定义抛出异常,也就是说一条线程内部发生的checked异常,必须也只能在内部用try-catch处理掉,不能往外抛,因为 ...

  4. 【Java学习笔记】线程学习笔记

    一.资源 http://blog.csdn.net/axman/article/details/431796 这个博客里有Java多线程.线程池的一系列,从基础开始就很清楚,牛人 二.重点 今天读到了 ...

  5. java学习笔记之线程(一)

    线程(一) 一.线程定义于组成: 1.创建任务和线程: 1 TaskThread task = new TaskThread(); // 创建任务 2 Thread taskThread = new ...

  6. Java学习笔记16-多线程

    1.多线程         进程:执行中的程序叫做进程(Process),是一个动态的概念.为了使计算机程序得以运行,计算机需要加载代码,同时也要加载数据,每个进程由3部分组成:cpu,data,co ...

  7. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  8. Java学习笔记:创建线程的两种方法

    Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程

  9. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

最新文章

  1. linux高性能网络编程读书笔记之socket数据读写
  2. Kubernetes — 网络流量模型
  3. python3 cgi传数据
  4. 【C++】 C++标准模板库(十一) 优先队列
  5. 【完成发布】Lazy Line Painter – 非常有趣的 jQuery 路径动画插件
  6. 物联网火爆,入门却太难了!
  7. 使用javamail 发送邮件
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的鲜花销售系统
  9. SharePoint2010 内容类型剖析(Content Type/ 內容類型)
  10. G++和C++区别和评测注意事项
  11. linux系统无法复制文件夹,linux 电脑之间复制文件、文件夹命令
  12. 如何把多张图片快速的拼接在一起?如何拼接多张图片?
  13. 【论文笔记】基于交易的以太坊智能合约分类检测方法
  14. 2512 4.7K 5%贴片电阻识别方法
  15. L2-029 特立独行的幸福
  16. 【一日一logo_day_19】sos
  17. 迪文串口屏幕DMG10600T101_01WTR实现图片切换并和串口通讯
  18. opencv 修改图像像素
  19. 服务器raid卡安装在什么位置,安装raid卡
  20. java实体类没有映射文件_MyBatis自动生成实体类、DAO和XML映射文件,并去掉实体类中的getter和setter方法...

热门文章

  1. eclipse导入项目发生的Android Private Libraries丢失
  2. JVM系列(之class文件)
  3. Windows一些操作
  4. Map 3D 2011 在线帮助真正在线了 :)
  5. JAVA利用google的zxing快速生成QRCode
  6. 从Postman到ApiPost——码农闰土
  7. python thread模块_【Python@Thread】thread模块
  8. python自定义函数的关键字_Python3.x中自定义比较函数
  9. php 图片服务器搭建,php图像裁剪服务器搭建
  10. mysql5.7.23主主重制_MySQL-23(主从复制)