首页 > 编程语言 >《Java编程思想第四版》学习笔记48--关于Runnable

《Java编程思想第四版》学习笔记48--关于Runnable

时间:2023-12-17 18:05:55浏览次数:55  
标签:Runnable run 48 对象 创建 一个 线程 Java

现在 run()位于类内,但它在 init()结束以后仍处在“睡眠”状态。若按下启动按钮,线程便会用多少有些

暧昧的表达方式创建(若线程尚不存在):

new Thread(Counter3.this);

若某样东西有一个 Runnable 接口,实际只是意味着它有一个 run()方法,但不存在与之相关的任何特殊东

西—— 它不具有任何天生的线程处理能力,这与那些从Thread 继承的类是不同的。所以为了从一个

Runnable 对象产生线程,必须单独创建一个线程,并为其传递Runnable 对象;可为其使用一个特殊的构建

器,并令其采用一个 Runnable 作为自己的参数使用。随后便可为那个线程调用 start(),如下所示:

selfThread.start();

它的作用是执行常规初始化操作,然后调用 run()。

Runnable 接口最大的一个优点是所有东西都从属于相同的类。若需访问什么东西,只需简单地访问它即可,

不需要涉及一个独立的对象。但为这种便利也是要付出代价的—— 只可为那个特定的对象运行单独一个线程

(尽管可创建那种类型的多个对象,或者在不同的类里创建其他对象)。

注意 Runnable 接口本身并不是造成这一限制的罪魁祸首。它是由于 Runnable 与我们的主类合并造成的,因

为每个应用只能主类的一个对象。

                                                                                                             P.495

这一段话要多读读,读懂。

标签:Runnable,run,48,对象,创建,一个,线程,Java
From: https://blog.51cto.com/u_16183536/8862393

相关文章

  • 立志在线学习系统,基于java、vue开发的在线教育平台
    立志在线学习系统,是基于java、vue开发的在线教育平台,将开发PC、小程序、手机端,集成RABC权限+在线考试+文档预览+视频播放+代码生成器等功能。目标是基于此项目可以巩固学习springboot、vue、Mybatis等技术,欢迎star哟~~一、技术架构版本控制:git依赖管理:maven接口文档:Swagger权限验......
  • MongoDB:Java开发者的新型数据库解决方案
    一、介绍MongoDB是一种高性能、开源的、面向文档的数据库系统,它使用C++语言编写,并提供了一系列强大的功能和特性。MongoDB具有灵活的数据模型、高效的查询性能、强大的扩展性和易用性等特点,使得它成为Java开发者的新型数据库解决方案。二、MongoDB的特点文档型数据模型:MongoDB采用......
  • 无涯教程-Java - String substring(int beginIndex, int endIndex)函数
    截取beginIndex索引开始到endIndex结束之间的字符串内容。Stringsubstring-语法这是此方法的语法-publicStringsubstring(intbeginIndex,intendIndex)这是参数的详细信息-beginIndex - 包含开始索引。endIndex   - 不包含结束索引。Stringsubstri......
  • java状态模式
    1定义一个接口2publicinterfaceState{3publicvoidhandle();4}567/**8*具体的状态角色(下单)9*CreatedbyAdministrator10*/11publicclassPlaceAnOrderimplementsState{12//具体化状态的行为13@Override14publ......
  • 我是如何解决java.security.cert.CertPathValidatorException异常的
    在rocky8.5上,有个jdk8跑的程序连接windows上SQLServer2012失败了,环境如下:[zcm@rockymicroService]$cat/etc/redhat-releaseRockyLinuxrelease8.5(GreenObsidian)[root@rockysecurity]#java-versionopenjdkversion"1.8.0_302"OpenJDKRuntimeEnvironment(......
  • Java-与斐波那契数列相关的变体问题
    变体问题指的是提问的方式不一样了,但是解决问题的方法还是用斐波那契数列来解。——写在前面的话。一、变体1-兔子问题1.问题描述第一个月,有一对未成熟的兔子第二个月上述的一对兔子成熟第三个月,他们能产下一对小兔子所有兔子遵循相同规律,求第n个月的兔子个数2.分析例子假设我要求......
  • java实现二叉树前序搜索输出深度完整代码
    importjava.util.Scanner;//1:无需package//2:类名必须Main,不可修改classTreeNode{publicintval;publicTreeNodeleft;publicTreeNoderight;publicTreeNode(intval){this.val=val;this.left=null;this.right=null;}}p......
  • 无涯教程-Java - boolean startsWith(String prefix, int toffset)函数
    判断字符串是否以prefix开头。booleanstartsWith-语法这是此方法的语法-publicbooleanstartsWith(Stringprefix,inttoffset)这是参数的详细信息-prefix   -要匹配的前缀。toffset  -从何处开始查找字符串。booleanstartsWith-返回值如果参数表示......
  • 无涯教程-Java - boolean startsWith(String prefix)函数
    判断字符串是否以prefix开头。booleanstartsWith-语法publicbooleanstartsWith(Stringprefix)这是参数的详细信息-prefix  - 要匹配的前缀。booleanstartsWith-返回值如果是以prefix开头,则返回true,否则为false。booleanstartsWith-示例importjava.io.*......
  • 无涯教程-Java - split(String regex, int limit)函数
    将字符串拆分成一个数组。String[]split-语法publicString[]split(Stringregex,intlimit)这是参数的详细信息-regex   -定界的正则表达式。limit   -输出阈值,这意味着要返回多少个字符串。String[]split-返回值它返回通过将字符串拆分为字符串......