JUC 第2章Lock接口

第2章 Lock接口

1. 复习Synchronized

     1.1  多线程编程模板上

   (1)线程 操作 资源类

   (2)高内聚低耦合

    1.2  实现步骤

 

参考Java8API

Lock implementations provide more extensive locking operations than can be obtained using synchronized methods and statements. They allow more flexible structuring, may have quite different properties, and may support multiple associated Condition objects.

 

Lock实现提供更广泛的锁定操作可以比使用 synchronized获得方法和声明更好。他们允许更灵活的结构,可以有完全不同的特性,可以支持多个相关的 Condition对象。

 

    2.2  Lock接口的实现

ReentrantLock可重入锁,参考Java8API

   

 

   2.3  创建线程方式                  (3)Thread(Runnable target, String name)
                       参考Java8API

  2.4  实现线程方法

      (1)  新建类实现runnable接口

  这种方法会新增类,有更新更好的方法

 

      (2)  匿名内部类

   

        (3)   lambda表达式

   2.5  程序代码

 

  3  . java8新特性

  3.1   lambda表达式 

  • 接口里的实现方法
  • 接口里的实现方法
  •  (1) 要求

    lambda表达式,如果一个接口只有一个方法,我可以把方法名省略

    (2) 编写规则

    拷贝小括号(),写死右箭头->,落地大括号{...}

     (3)  函数式接口

    lambda表达式,必须是函数式接口,必须只有一个方法

    如果接口只有一个方法java默认它为函数式接口。

    为了正确使用Lambda表达式,需要给接口加个注解:@FunctionalInterface

    如有两个方法,立刻报错

    Runnable接口为什么可以用lambda表达式?

    3.2  接口里的实现方法
  •   (1)   default方法

    接口里在java8后容许有接口的实现,default方法默认实现

  • 接口里default方法可以有几个?

    可以有多个,没有限制

     

      (2)  静态方法实现

    静态方法实现:接口新增

    接口里静态方法可以有几个?

    可以有多个,没有限制

    注意静态的叫类方法,能用foo去调吗?要改成Foo

    3.3  程序代码