Java实现多线程的两种方式
认识多线程之前,我们先要了解几个关于多线程有关的概念。
A:进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。
B:线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。
C:简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程
什么是多线程呢?即就是一个程序中有多个线程在同时执行。
线程实现方式
继承Thread类
A:创建线程的步骤:
1.定义一个类继承Thread。
2.重写run方法。
3.创建子类对象,就是创建线程对象。
4.调用start方法,开启线程并让线程执行,同时还会告诉jvm去调用run方法
代码案例
public class MyThread extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println(getName() + ":" + i);}}
}
测试
/** 多线程的实现方式:* 方式1:一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。接下来可以分配并启动该子类的实例* * Thread* String getName() 返回该线程的名称。 * void setName(String name) 改变线程名称,使之与参数 name 相同。* * * CPU执行程序的随机性*/
public class ThreadDemo2 {public static void main(String[] args) {//创建线程实例MyThread mt = new MyThread();//修改线程名字mt.setName("张三");//启动线程mt.start();//创建线程实例MyThread mt2 = new MyThread();mt2.setName("老王");//启动线程mt2.start();}
}
实现Runnable接口
创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。然后创建Runnable的子类对象,传入到某个线程的构造方法中,开启线程。
为何要实现Runnable接口,Runable是啥玩意呢?继续API搜索。
查看Runnable接口说明文档:Runnable接口用来指定每个线程要执行的任务。包含了一个 run 的无参数抽象方法,需要由接口实现类重写该方法。
创建线程的步骤。
1、定义类实现Runnable接口。
2、覆盖接口中的run方法。。
3、创建Thread类的对象
4、将Runnable接口的子类对象作为参数传递给Thread类的构造函数。
5、调用Thread类的start方法开启线程。
代码案例
public class MyThread2 implements Runnable {int num;public MyThread2(int num) {this.num = num;}@Overridepublic void run() {for (int i = 0; i < 100; i++) {//Thread t = Thread.currentThread();//System.out.println(t.getName() + ":" + i);//链式编程System.out.println(Thread.currentThread().getName() + ":" + i + num);}}}
Java实现多线程的两种方式相关推荐
- Java实现多线程的两种方式讲解
1.两种方式 继承Thread和实现Runnable接口 a.Runnable 是一个接口,该接口中只包含了一个run()方法.我们可以定义一个类A实现Runnable接口:然后,通过ne ...
- 多线程基础-实现多线程的两种方式(二)
实现多线程的两种方式: 1.实现Runnable public interface Runnable {public abstract void run(); }// RunnableTest.jav ...
- 创建和应用Java包文件的两种方式(转)
创建和应用Java包文件的两种方式(转) <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1 包--package ... 12.1.1 包命名规 ...
- java制作oracle程序,Java程序操作Oracle两种方式之简单实现
Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...
- Java 实现抽奖的两种方式
Java实现抽奖的两种方式 方式一:随机数在哪个区间内返回区间下标 方式二:随机数加入区间点集合排序返回随机数下标 代码示例: ①抽奖入参类型为BigDecimal: package com.cfay ...
- Java格式化倒计时的两种方式
Java格式化倒计时的两种方式 第一种方式 /*** 入参是一个每秒减小1的秒数* 返回一个格式化的时间* * 该方法具有局限性,他在时间大于1个小时的时候,会返回错误的时间* 因为该方法调用了Dat ...
- java操作Excel有两种方式 方式1:jxl操作Excel jxl的API
java操作Excel有两种方式 方式1:jxl操作Excel 方式2:poi操作Excel 下面介绍jxl API: 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用 ...
- Java 实现多线程的四种方式 超详细
Java 实现多线程的四种方式 文章目录 Java 实现多线程的四种方式 一.继承 Thread 类 二.实现 Runnable 接口 三.实现 Callable 接口 四.线程池 1,Executo ...
- java 产生随机数的两种方式,Java产生随机数的两种方式
Java产生随机数的两种方式 Java产生随机数的两种方式 在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.M ...
最新文章
- WC2018集训 吉老师的军训练
- Silverlight学习之——如何在 Silverlight 中使用 Deep Zoom
- distinct 只针对一个字段
- oracle大表如何快速删除一列,Oracle 对表中的记录进行大批量删除
- dubbo k8s 服务发现_服务化改造实践(二)| Dubbo + Kubernetes
- string转换bigdecimal_使用MapStruct处理恼人的bean转换
- springboot activiti 配置项详解
- 室内定位系列 ——WiFi位置指纹(译)
- imageNamed和imageWithContentsOfFile-无法加载图片的问题
- sap模块有哪些_SAP那些事-实战篇-21-关于COPA模块的总结
- Spring 依赖注入(一、注入方式)
- IDEA引入JDK/jar包无效、java 文件灰色右下角橙色java图标显示等问题解决办法
- TwinCAT 3 使用XML-server
- python爬取天眼查存入excel表格_python爬取企查查江苏企业信息生成excel表格
- 数模学习(七)--- 多元线性回归
- IBM与广东中医院 携手共建智慧医疗
- Scrum板与Kanban如何抉择?ivhbyfphe板与按照drpxcj
- Windows与ipad共享文件
- Shell脚本之IP验证
- Qt(c++)调用python一直报错slot、hypot等