博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
transient和synchronized的使用
阅读量:6193 次
发布时间:2019-06-21

本文共 1277 字,大约阅读时间需要 4 分钟。

transient和synchronized这两个关键字没什么联系,这两天用到了它们,所以总结一下,两个关键字做个伴!

transient

持久化时不被存储,当你的对象实现了Serializable接口,这个对象就可以被存储到磁盘上了,而有一些信息比较敏感时,不想被持久化,就可以声明为transient,这时它只在内存中存在,保存到磁盘时将被忽略!

public class ExcelBean implements Serializable {  private static final long serialVersionUID = 1L;  private String headTextName;  private String propertyName;  private Integer cols = 0;  private transient XSSFCellStyle cellStyle; }

上面代码中,cellStyle这个复杂对象不会被文件流写到磁盘里。

synchronized

同步关键字,当你的对象被实现化后,里面的方法可能被多个线程调用,这在web环境下很常见,如果希望为方法加个锁,让方法一个一个线程排队执行,最简单的方法就是加synchronized关键字,它可以保持这个方法同一时刻只有一个线程执行它。

/**   * 方法强制为同步方法.   */  synchronized void queue() {    try {      System.out.println("print synchronized result:" + LocalDateTime.now().toString());      Thread.sleep(5000);    } catch (Exception ex) {    }  }  @Test  public void synchronizedTest() throws Exception {    for (int i = 0; i < 5; i++) {      new Thread(() -> queue()).start();    }    Thread.sleep(500000);  }

运行的结果如下,它总会被阻塞4秒钟,没有任务两个线程打印的时间相同。

print synchronized result:2018-12-13T14:31:13.010print synchronized result:2018-12-13T14:31:18.015print synchronized result:2018-12-13T14:31:23.018print synchronized result:2018-12-13T14:31:28.023print synchronized result:2018-12-13T14:31:33.028

转载于:https://www.cnblogs.com/lori/p/10113871.html

你可能感兴趣的文章
OA系统和CRM客户关系管理 流程是核心
查看>>
最新版Win 10S遭吐槽:看起来很美,用起来很烦
查看>>
奥巴马政府发布最新Fintech白皮书,提出十大创新监管原则
查看>>
人工智能对人类的威胁只是程序BUG? | 万物互联创新大会
查看>>
Infinera Q2营收同环比下滑 加速推出新产品
查看>>
HR软件Impraise获160万美元种子投资
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
苏州扎实推进消防大数据 综合业务平台试点应用
查看>>
物联网与智能化是我国传感器发展突破口
查看>>
调试是新建数据中心成功运营的关键
查看>>
雅虎证实5亿账户被窃 刷新单一网站用户信息泄露纪录
查看>>
科学家警告:被黑客入侵的工业机器人可能将人类生命置于危险中
查看>>
你的电脑会感染勒索病毒吗?快用这款工具查一下
查看>>
村路安防建设加速 科学推进安全前行
查看>>
“业务为王”时代下,DevOps怎么玩?
查看>>
瑞斯康达推出电信级POE以太网交换机
查看>>
Java for Selenium(webdriver) 环境搭建
查看>>
2017技术趋势:最受欢迎的几大工具
查看>>
*ST京蓝入股力合节能 着力绿色智慧城市服务
查看>>
缺陷上报统一模板及缺陷管理流程
查看>>