四月二十八号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 程 ...
随机推荐
- PVE设置定时关闭、启动虚拟机
shell中输入命令: crontab -e 进入对应cron 添加命令: 例如: 00 2 * * * pvesh create /nodes/pve/qemu/102/status/stop 00 ...
- C语言初级阶段6——自定义数据类型
C语言初级阶段6--自定义数据类型 阐述 1.构造数据类型:用户自己建立的数据类型(自定义数据类型). 2.C语言中的自定义数据类型:数组类型.结构体类型.共用体类型和枚举类型. 结构体 1.定义:C ...
- docker安装nginx挂载启动
docker pull nginx 命令安装 查找 Docker Hub 上的 nginx 镜像: docker search nginx 这里我们拉取官方的镜像 docker pull nginx ...
- char值转换为int怎么才能不是ASCII值
直接将char类型的变量强制转换为int类型是不行的,那样只会传递变量所对应的ASCII码 怎么才能将char类型转换为int类型呢?String类型的可以通过方法转换为int类型.那是不是可以将ch ...
- K8S的基础概念
一.Kubernetes介绍 1.什么是Kubernetes? Kubernetes(通常称为K8s,K8s是将8个字母"ubernete"替换为"8"的缩写) ...
- aar 真机测试
工具 bundletool.jar 官方下载位置 https://github.com/google/bundletool/releases 下载后改下名字方便输入命令 将aar 放在G盘根目录 ja ...
- 正向代理和反向代理和spring的动态代理模式有几种?默认是那种?如何切换?
spring的动态代理模式有几种?默认是那种?如何切换? spring的动态的代理模式有两种 JDK动态代理,基于接口(默认代理模式),CGLIB动态代理(若要使用需要进行配置) JDK动态代理是由j ...
- go语言读取文件的简单使用
注意:打开文件记得一定要关闭 file, err := os.Open("文件名称") defer file.Close() 一.打开文件 1. file, err := os.O ...
- unittest框架基本使用
1.简介 unittest是python内置的单元测试框架,具备编写用例.组织用例.执行用例.输出报告等自动化框架的条件.使用unittest前需要了解该框架的五个概念: 即test case,tes ...
- 初次使用Sqoop报错,sqoop命令不能正常使用:hcatalog does not exist!accumulo does not exist!
1.问题描述: (1)问题示例: [hadoop@master Tmp]$ sqoop helpWarning: /home/grid/Sqoop/sqoop-1.4.7/../hcatalog d ...