多线程-了解(二)

1.线程安全与线程共享

允许被多个线程同时执行的代码称为线程安全代码。

局部变量:存储在自己的栈中,永远不会被共享,所以是线程安全的

局部对象的引用:对象的局部引用和基础类型的局部变量不太一样。尽管引用本身没有被共享,但引用所指的对象并没有存储在线程的栈内。所有的对象都存在共享堆中。如果在某个方法中创建的对象不会逃逸出(译者注:即该对象不会被其它方法获得,也不会被非局部变量引用到)该方法,那么它就是线程安全的。实际上,哪怕将这个对象作为参数传给其它方法,只要别的线程获取不到这个对象,那它仍是线程安全的

对象成员:对象成员存储在堆上。如果两个线程同时更新同一个对象的同一个成员,那这个代码就不是线程安全的。

线程安全:如果一个资源(对象,数组,文件,数据库连接,套接字等等)的创建,使用,销毁都在同一个线程内完成,

且永远不会脱离该线程的控制,则该资源的使用就是线程安全的。

2.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,378评论 11 349
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,744评论 0 11
  • “好声带好运,好话带好命”,鹿雯立老师用自己的故事、温婉柔美的声音为这句话做了最好的代言,让我深信不疑。鹿老师说...
    爱晒太阳的VV猫阅读 1,532评论 1 4
  • 今天是六一啊。期待已久的红鼻子晚会结束了,感觉受到了一万点欺骗!!!今天想给她买一身衣服,可我实在不知道买什么样的...
    桐花烂漫阅读 208评论 0 0