【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )
文章目录
- 一、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 扩展方法 源码 :
/*** 这个类定义了groovy环境中普通JDK类上出现的所有新的静态groovy方法。* 静态方法与第一个参数一起用作目标类。*/
public class DefaultGroovyStaticMethods {/*** 以给定的闭包作为可运行实例启动线程。** @param self Groovy类别使用的占位符变量;默认静态方法忽略* @param closure 可运行的闭包* @return 返回已经启动的线程 * @since 1.0*/public static Thread start(Thread self, Closure closure) {return createThread(null, false, closure);}
}
【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )相关推荐
- 如何在Java Reflection中的类下获取所有方法信息?
本文以我以前的文章为基础 . 在本文中,我们将看到如何使用Java Reflection检索类相关信息. 我们将重点介绍方法名称. 注意:我将创建一个单独的反射器实用程序类,在该类中,我们在其构造函数 ...
- Python中的类、实例以及方法,MRO继承解析顺序以及Mixin类
Contents 1. 什么是类和实例 2. 类的实例方法.类方法和静态方法 3. MRO是什么,描述其查找顺序 4. Mixin是什么,描述其应用场景 5. References 1. 什么是类和实 ...
- python类和对象介绍_python中的类,对象,方法,属性等介绍
注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...
- @async方法不调用了_在Spring中使用Future对象调用Async方法调用
@async方法不调用了 下一个示例将演示Spring容器内部的异步方法调用. 为什么我们需要异步方法调用? 在某些情况下,我们并不真正知道是否需要重播或何时应返回结果. 传统方式在Java EE世界 ...
- 不应该通过类实例访问静态成员 解决方法_今天说一说php中的类与对象
网上的文章博客这种东西已经写烂了. 我只是写写自己理解.... 首先都知道php的面向对象,什么封装,集成,多态,灵活,简单,代码简洁,重用行强,利于维护,什么什么三个方向:灵活性,重用行,扩展性. ...
- 在计算机系统中 一个以科学的方法组织,(10)在计算机系统中,一个以科学的方法组织、存储数据,并可高效地获取、维护数据的软件系统称为【10】...
(10)在计算机系统中,一个以科学的方法组织.存储数据,并可高效地获取.维护数据的软件系统称为[10] 更多相关问题 [单选] 保险展业的发展趋势是() [多选] 取保候审中,保证人应当履行的义务是( ...
- python json方法详解_详解python中的json的基本使用方法
在Python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口. #!/usr/bin/env ...
- Java中Thread类的start()和run()方法
1.两个方法的区别 start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法.start()不能被重复调用. run() : run()就和普通的成员方法一样,可以被重复调用 ...
- Thread 类及常用的方法
文章目录 一.Thread 的常见构造方法 二.Thread 的常见属性 三.创建线程 四.中断线程 五.线程等待 六.获取线程引用 七.线程休眠 八.线程状态 一.Thread 的常见构造方法 方法 ...
最新文章
- 两个超长正整数的加法c语言,二个超长正整数的相加
- 日常运维管理技巧十六(iftop网卡流量监控工具)(转载)
- ​“统治”移动处理器市场的Arm为何明年Q1才发布AI处理器?
- form表单,submit,ajax提交
- 计算机等级考试java题型_计算机等级考试报考建议
- exec vs sp_executesql
- 两条信号之间加电容_信号完整性SI读书笔记之一
- 北斗三号频点_定位精度超越GPS!紫光展锐推出支持北斗三代的四合一芯片
- arcgis api 3.X 几种查询方式比较
- 腾讯与新浪微博开放平台之比较
- 现代控制工程(三)状态方程的解
- BZOJ1050 [HAOI2006]旅行comf (并查集)
- Unity 游戏多语言解决方案和字体错误解决方法的想法
- 用python画漂亮的网状几何图形
- 小程序开发之全栈开发(一)
- 【Python 测验 01编程】数值运算
- html网页轮播速度,纯HTML+JS实现轮播
- 小程序入门教程之微信-02-页面样式
- CSDN如何上传视频?
- ppt如何导出成高清图片
热门文章
- 数据库的优化tips
- odoo8.0+PyCharm4.5开发环境配置
- 04 javascirpt基础知识---听课笔记
- 记录MNIST采用卷积方式实现与理解
- MySQL数据库性能优化的八种方式
- Codeforces 1016F	Road Projects
- Python爬虫之BeautifulSoup和requests的使用
- NOIP2006提高组 能量项链
- BZOJ1452 [JSOI2009]Count 树状数组
- IOS 2D游戏开发框架 SpriteKit--续(postion,锚点,游戏滚动场景)