四月二十八号Java基础知识
1.由于Thread类位于java.lang包中,因而程序的开头不用import导入任何包就可直接使用
try{
sleep((int)(1000*Math.random()));//sleep()方法必须写在try-catch块内
}catch(InterruptedException e){写sleep()方法容易出现InterruptedException错误
System.out.println(who+"正在运行!");
}
2.Math.random()方法将产生0-1s的随机数
3. Runnable接口更适合多个线程处理
4.由于程序中的MyThread类是有由Runnable接口实现的,所以sleep()方法前面要加Thread
前缀
5.程序中被同时激活的多个线程将同时执行,但有时需要有序的执行,这时可以使用Thread
类中的join方法,当某一个线程调用join()方法时,则其他的线程会等到该线程结束后才开始
执行
6.public void join()方法:暂停当前线程的执行,等待调用该方法的线程结束后再继续执行
本线程
7.join()方法会抛出InterruptedException异常,所以必须把join()方法放在try-catch块内
8.如何获得当前正在运行的线程:
第一种:直接使用继承Thread类的子类,再类中this即只当前进线程
第二种:使用Runnable接口的类,在此类中获得当前线程的引用,必须使用Thread.current
Thread()方法
9.注意: 当可运行对象包含线程对象时,即线程对象是可运行对象的成员时,则在run()方法
中可以调用Thread.currentThread()方法来获得正在运行的线程的引用
第二种可运行对象不包含线程对象时,可运行对象run()方法中需要语句
Thread.currentThread().getName()方法 来返回当前的正在运行线程的名字
总结:今天学习了实现多线程的两种方式,一种是继承Thread类,这个只能继承一个,但编写较简单
两一种是自己定义类实现Runnable接口来实现多线程,在数据的共享方面Runnable接口实现线程对象
较继承Thread子类来说更契合实际,更满足情况
也学习了start()方法线程的启动
run()方法线程的执行
join()方法暂停当前线程
四月二十八号Java基础知识的更多相关文章
- 超详细的Java面试题总结(二)之Java基础知识篇
多线程和Java虚拟机 创建线程有几种不同的方式?你喜欢哪一种?为什么? 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Callable接口. 我 ...
- 二十、Java基础--------IO流之其他对象
在上面两篇文章中介绍了IO体系并详细介绍了字节流以及字符流,本文主要是讲述操作文件的File.转化流.标准输入与输出.Properties.打印流以及序列流. File File英文为"文件 ...
- java 基础知识二 基本类型与运算符
java 基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...
- java基础知识一览(二)
一.java基础知识 1.一个文件中只能有一个public的类,因为他的类名要求和文件名相同. 2.classpath变量可以设置其它目录下的类. 例如:类文件所在目录是:F:\Javajdk,那么没 ...
- Java实习生常规技术面试题每日十题Java基础(二)
目录 1. JAVA 的反射机制的原理. 2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 3.如何将String类型转化成Number类型. 4.什 ...
- 第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...
- java基础知识文章汇总
将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规 ...
- Java基础知识陷阱系列
Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
随机推荐
- Vuex----Actions
Actions用于处理异步任务. 如果通过异步操作变更数据,必须通过 Action,而不能使用Mutation,但是在 Action中还是要通过触发Mutation的方式间接变更数据. 注意: 在Ac ...
- python3GUI--天气预报小工具By:PyQt5(附源码)
@ 目录 一.准备工作 二.预览 1.启动 2.添加城市 三.设计流程 1.UI设计(草图) 2.UI设计(QT设计师) 3.解释 四.源代码 五.总结 之前用tk写过一款python3GUI--天气 ...
- PHP实现斐波那契数列(递归 + 非递归)实现
非递归写法:function fbnq($n){ //传入数列中数字的个数 if($n <= 0){ return 0; } $array[1] = $array ...
- element的el-table使用模板插槽在火狐和IE无法显示tooltip(浏览器兼容)
el-table中使用show-overflow-tooltip属性,配合tooltip出现的浏览器兼容性问题 el-table中使用show-overflow-tooltip属性内容过长被隐藏时显示 ...
- mmdetection使用现有的模型进行推理
数据集准备: 下载链接: COCO:https://cocodataset.org/ VOC:http://host.robots.ox.ac.uk/pascal/VOC/ cityscapes:ht ...
- 循环文件夹汇总所有下载发票的Excel文件数据
Dim a As String, n As Integer, wbs As Workbook ThisWorkbook.Sheets(1).Cells.Clear a = Dir(ThisWorkbo ...
- easycode模版-基于ruoyi-cloud
##定义初始变量 #set($tableName = $tool.append($tableInfo.name, "Controller")) ##设置回调 $!callback. ...
- ubuntu下删除U盘文件到回收站无法清空问题的解决
Ubuntu可以自动加载U盘 每当,拷贝新的文件,而空间不足的时候,就会删除原有的文件. 可是,它不是彻底删除,而是放在垃圾箱中(/home/mrc/.local/share/Trash/files) ...
- POI设置单元格下拉框
一.导出 Excel 单元格设置下拉框 日常开发中,导出基础数据为模版,填充信息后导入时,有时候会要求某些导入项应该为下拉框选择,一个是为了规范数据,也可以简化填充. 1.1 单元格下拉框选项总字符较 ...
- 单例和mono单例
单例 public class Singleton<T> where T : new() { private static T instance; public static T Inst ...