文章目录
一、Groovy 扩展方法引入
二、 分析 Groovy 中 Thread 类的 start 扩展方法
一、Groovy 扩展方法引入
Groovy 可以对 JDK 中的一些类进行 方法扩展 , 这些 JDK 自带类可以执行额外的扩展方法 ;
在之前的博客 【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 服务器客户端完整代码示例 | 运行服务器端与客户端效果及过程分析 ) 中 , 使用了
Thread.start { }
用法 , 在闭包中执行的就是线程 Thread 的 run 方法内容 ;
二、 分析 Groovy 中 Thread 类的 start 扩展方法
分析该为 Thread 类扩展的 start 扩展方法 , 扩展方法定义在了 DefaultGroovyStaticMethods 类中 ;
该 start 方法接收一个 Thread self 线程对象 参数 和 Closure closure 闭包参数 ;
指定为哪个类定义扩展方法 : 第一个参数 Thread self , 表示只能在 Thread 对象上调用该 start 扩展方法 , 其它非 Thread 类型的对象 , 无法调用该 start 方法 ;
指定扩展方法的参数 : 第二个参数 Closure closure , 表示为 Thread 类扩展的 start 方法参数是 闭包 类型 ;
Thread 类的 start 扩展方法 源码 :