专栏名称: java一日一条
主要是讲解编程语言java,并且每天都推送一条关于java编程语言的信息
目录
相关文章推荐
Java编程精选  ·  330个“假补丁”差点混入主线?LinusT ... ·  22 小时前  
芋道源码  ·  告别if else!这款轻量级规则引擎框架,真香! ·  18 小时前  
芋道源码  ·  如何实现一个合格的分布式锁 ·  2 天前  
51好读  ›  专栏  ›  java一日一条

Java 高并发综合

java一日一条  · 公众号  · Java  · 2017-11-28 08:30

正文

请到「今天看啥」查看全文


并发编程

Java中如何创建一个线程

从面相接口的角度上讲,实际上只有一种方法实现Runable接口;但Thread类为线程操作提供了更多的支持,所以通常做法是实现Runable接口,实例化并传入Thread类的构造函数。

  • 继承Thread,覆写run方法

  • 实现Runable接口,覆写run方法

Vector(HashTable)如何实现线程安全

通过synchronized关键字修饰每个方法。

依据synchronized关键字引申出以下问题。

synchronized修饰方法和修饰代码块时有何不同

持有锁的对象不同:

  1. 修饰方法时:this引用的当前实例持有锁

  2. 修饰代码块时:要指定一个对象,该对象持有锁

从而导致二者的意义不同:

  1. 同步代码块在锁定的范围上可能比同步方法要小,一般来说锁的范围大小和性能是成反比的。

  2. 修饰代码块可以选择对哪个对象加锁,但是修饰方法只能给this对象加锁。

ConcurrentHashMap的如何实现线程安全

ConcurrentHashMap的线程安全实现与HashTable不同:







请到「今天看啥」查看全文


推荐文章
芋道源码  ·  如何实现一个合格的分布式锁
2 天前
深交所  ·  大小说 | 投资者适当性(二)
7 年前