四月二十八号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 程 ...
随机推荐
- 下载Vue.js输入Vue -V报错解决办法
报错如图所示 解决办法: 1. 以管理员身份运行vscode; 2. 执行:get-ExecutionPolicy,显示Restricted,表示状态是禁止的; 3. 执行:set-Execution ...
- Verilog 预编译
Verilog 预编译 Verilog 语言支持宏定义(`define),参数 parameter,局域参数(localparam)以及`include等内容.这些数据常量的支持极大方便数字系统设计. ...
- Day02 差点水掉 欸呀呀
Java狂神6.17星期四 知识行 冯诺依曼+图灵 软件+硬件 .......... 快捷键 ctrl+a 全选 ctrl+x 剪切 alt+F4 关闭窗口 win+r 运行 +cmd命令行 win+ ...
- 面向对象ooDay6
精华笔记: static final常量:应用率高 必须声明同时初始化 由类名打点来访问,不能被改变 建议:常量所有字母都大写,多个单词用_分隔 编译器在编译时会将常量直接替换为具体的数,效率高 何时 ...
- shell typeset 命令使用修改大小写
typeset的-u选项可以将一个变量的字符变成大写 1 /home/lee#typeset -u var=abc 2 /home/lee#echo $var 3 ABC -l选项将一个变量的字符变成 ...
- 2020/5/14-笔记:Oracle数据库新建用户与给用户授权
- form表单 css的选择器和一些属性以及盒子模型,浮动
form表单 <form action='' method='' enctype=''> <input type='text'> input:更下type属性就可以得到对应的效 ...
- CAS无锁机制
1. 背景 传统Synchronized锁:悲观,如果没有获取到锁的情况下,会让当前线程变为阻塞的状态,释放CPU执行权,效率非常低. 乐观锁(自旋):本质上没有锁,没有死锁现象,而且效率比较高,不会 ...
- element表格样式修改
HTML代码: <el-table :data="tableData" style="width: 100%" border :row-class-nam ...
- 使用ActiveMQ中遇到的端口占用问题
原Linux虚拟机中安装了ActiveMQ,EMQX.后期使用中主要使用EMQX来实现消息服务,停止了ActiveMQ.但是虚拟机挂起之后,长时间未再使用.近期由于有使用ActiveMQ的需要,而临时 ...