java多线程(2)----继承的方式创建多线程
文章目录
- 1.单线程举例
- 2.多线程的创建与启动
- 3.实例
- 4.需要注意的地方
- 5.参考资料
1.单线程举例
public class Test {public static void main(String[] args){method2("yyzhang");}public static void method1(String str){System.out.println("method1...");System.out.println(str);}public static void method2(String str){System.out.println("method2...");method1(str);System.out.println(str);}
}
看似调用了多次函数,其实是单线程调用
2.多线程的创建与启动
- java语言的JVM允许程序运行多个线程,他通过java.lang.Thread类来实现
- Thread类的特性
- 每个线程都是通过某个特定的Thread对象的run()方法完成操作的,经常把run()方法的主体称为线程体
- 通过该Thread对象的start()方法来调用这个线程
通过查阅api可以得到,创建线程方法一是:- 创建一个继承Thread的类
- 重写Thread的run方法,方法内实现子线程需要实现的功能
- 创建一个子类的对象
- 调用线程的start方法
3.实例
/** 创建一个子线程,完成1-100之间自然数的输出,同样的* 主线程执行同样的操作* 创建多线程的第一种方式,继承java.lang.Thread类*///1创建一个继承Thread的子类
class SubThread extends Thread{//2.重写Thread的run方法,方法内实现子线程要实现的功能public void run(){for(int i=1;i<=100;i++){System.out.println(Thread.currentThread().getName()+":"+i);}}
}
public class TestThread {public static void main(String[] args) {//3.创建一个子类的对象SubThread st=new SubThread();//4.调用线程的start方法,启动此线程,调用相应的run方法//5.一个线程只能start一次//6.直接调用run方法只有一个线程st.start();for(int i=1;i<=100;i++){System.out.println(Thread.currentThread().getName()+":"+i);}}}
运行结果:
我们可以看到打印的结果是两个线程是交替执行的。
4.需要注意的地方
- 一个线程只能start一次
将代码局部改为如图所示的样子。试着运行,可以得到:
试着在start方法中寻找答案,点击进去,发现
有一个threadStatus来指示运行的状态,它从根本上禁止了将一个线程运行多次 - 直接运行线程的run方法会发生什么?
试着将代码修改为
运行发现
只有一个Thread,那就是main。
5.参考资料
尚硅谷–继承方式创建多线程
java多线程(2)----继承的方式创建多线程相关推荐
- java thread 多线程_java用Thread方式创建多线程
进程:一个正在执行的程序,每一个进程都有一个执行顺序,该 顺序是一个执行路径,或者叫一个控制单元. 线程:进程中一个独立的控制单元.线程控制着进程的执行. 一个进程中至少有一个线程. java VM中 ...
- Java继承Thread类创建多线程
Java继承Thread类创建多线程 单线程示例 示例,Example01.java public class Example01{public static void main(String[] a ...
- 多线程初探:三种方式创建多线程详细示例
多线程即在同一时间,可以做多件事情. 创建多线程有3种方式,分别是继承线程类,实现Runnable接口,匿名类 一:线程概念 首先要理解进程(Processor)和线程(Thread)的区别 进程:启 ...
- Lambda方式创建多线程
Lambda方式创建多线程 一.Lambda表达式的标准格式 Lamdba创建线程,是对匿名内部类创建多线程的简化 由三部分组成: a.一些参数b.一个箭头c.一段代码 格式: (参数列表)-> ...
- 对Java多线程编程的初步了解,实现多线程的三种方式以及多线程并发安全的线程同步机制
什么叫进程?什么叫线程? 进程相当于一个应用程序,线程就是进程中的一个应用场景或者说是一个执行单元,一个进程可以启动多个线程,每个线程执行不同的任务,一个线程不能单独存在,他必须是进程的一部分,当进程 ...
- 多线程之继承Thread类及多线程内存分析
*创建多线程的一种方式:继承Thread类 * java.lang.Thread是描述多线程的类,要实现多线程程序,一种方式就是继承Thread类 * 1.创建一个类Mythread让其extends ...
- 继承Thread类的方式创建多线程
package MoreThread;public class MoreThread implements Runnable{@Overridepublic void run() {for(int i ...
- spark java pom.xml_使用maven方式创建spark项目(配置pom.xml文件)
创建maven项目后,在pom.xml文件中添加如下配置项: 1.8 1.8 2.10.5 1.6.2 2.6.4 UTF-8 org.apache.spark spark-core_2.11 ${s ...
- java创建多线程的四种方式
java多线程的创建方式是面试经常会被问到的一个问题,因此在这里我对java创建多线程的四种方式做一个简单的归纳与总结,便于复习. 一.继承Thread类创建多线程 ① 创建一个继承于Thread类的 ...
- java的多线程实现方式_java 多线程实现方式
本文主要是对java 多线程知识的总结,做个记录,温故知新. 多线程有三种实现方式,具体如下. 继承Thread类创建线程类 重写run方法,完成线程需要做的任务. 创建实例 调用start()启动线 ...
最新文章
- 也论PageController/FrontController与MVC
- 关于list.extend(iterable)
- 开发者社区精选直播合集一览
- linux源码安装必备条件,玩转Linux必备的金钥匙之源码安装mysql
- 2+22+222+2222(直到n个2的精确计算)
- 两年的坚持,最后还是决定将ISoft开源
- Android 之 Window、WindowManager 与窗口管理
- matlab中LMI工具箱函数feasp的用法
- corn表达式的简单使用
- python函数round()取整保留小数问题
- linux学习笔记:如何更改文件属性?
- Node.js系列——(4)优势及场景
- IDC机房建设方案参考资料
- 人体姿态识别 tensorflow版本
- 计算机学硕编码,怎么区分学硕和专硕代码
- MSM8937平台bootloader调试之一
- 设计资源:一款精美APP原型
- 导出IE浏览器配置的注册表信息 IE设置的注册表相关信息以及修改方法
- 计算机机房新风机的作用,你知道机房为什么要装新风系统吗?
- 宇宙那么大,跟着链游“上天”看看?
热门文章
- Apache JMeter 5.1.1 发布,压力测试工具
- PWA登陆iOS了,但它还有这些缺陷
- 《maven实战》学习笔记2——maven安装(windows和eclipse插件)
- linux 平台安装ionic开发调试编译环境(Android)
- freemarker 自己常用方法
- android 来电自动接听和自动挂断
- 设置dedecms为动态页面,设置dedecms为静态页面,首页动态,列表动态和文章动态
- 如何成为优秀的技术人员
- 2022 基于SpringBoot的高校食堂点评系统 大众点评系统
- 计算机算法设计与分析第三章答案,《计算机算法设计与分析》第三章动态规划法.ppt...