认识多线程之前,我们先要了解几个关于多线程有关的概念。
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实现多线程的两种方式相关推荐

  1. Java实现多线程的两种方式讲解

    1.两种方式 继承Thread和实现Runnable接口       a.Runnable 是一个接口,该接口中只包含了一个run()方法.我们可以定义一个类A实现Runnable接口:然后,通过ne ...

  2. 多线程基础-实现多线程的两种方式(二)

    实现多线程的两种方式: 1.实现Runnable public interface Runnable {public abstract void run(); }// RunnableTest.jav ...

  3. 创建和应用Java包文件的两种方式(转)

    创建和应用Java包文件的两种方式(转) <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1  包--package    ... 12.1.1  包命名规 ...

  4. java制作oracle程序,Java程序操作Oracle两种方式之简单实现

    Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...

  5. Java 实现抽奖的两种方式

    Java实现抽奖的两种方式 方式一:随机数在哪个区间内返回区间下标 方式二:随机数加入区间点集合排序返回随机数下标 代码示例: ①抽奖入参类型为BigDecimal: package com.cfay ...

  6. Java格式化倒计时的两种方式

    Java格式化倒计时的两种方式 第一种方式 /*** 入参是一个每秒减小1的秒数* 返回一个格式化的时间* * 该方法具有局限性,他在时间大于1个小时的时候,会返回错误的时间* 因为该方法调用了Dat ...

  7. java操作Excel有两种方式 方式1:jxl操作Excel jxl的API

    java操作Excel有两种方式 方式1:jxl操作Excel 方式2:poi操作Excel 下面介绍jxl API: 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用 ...

  8. Java 实现多线程的四种方式 超详细

    Java 实现多线程的四种方式 文章目录 Java 实现多线程的四种方式 一.继承 Thread 类 二.实现 Runnable 接口 三.实现 Callable 接口 四.线程池 1,Executo ...

  9. java 产生随机数的两种方式,Java产生随机数的两种方式

    Java产生随机数的两种方式 Java产生随机数的两种方式 在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.M ...

最新文章

  1. WC2018集训 吉老师的军训练
  2. Silverlight学习之——如何在 Silverlight 中使用 Deep Zoom
  3. distinct 只针对一个字段
  4. oracle大表如何快速删除一列,Oracle 对表中的记录进行大批量删除
  5. dubbo k8s 服务发现_服务化改造实践(二)| Dubbo + Kubernetes
  6. string转换bigdecimal_使用MapStruct处理恼人的bean转换
  7. springboot activiti 配置项详解
  8. 室内定位系列 ——WiFi位置指纹(译)
  9. imageNamed和imageWithContentsOfFile-无法加载图片的问题
  10. sap模块有哪些_SAP那些事-实战篇-21-关于COPA模块的总结
  11. Spring 依赖注入(一、注入方式)
  12. IDEA引入JDK/jar包无效、java 文件灰色右下角橙色java图标显示等问题解决办法
  13. TwinCAT 3 使用XML-server
  14. python爬取天眼查存入excel表格_python爬取企查查江苏企业信息生成excel表格
  15. 数模学习(七)--- 多元线性回归
  16. IBM与广东中医院 携手共建智慧医疗
  17. Scrum板与Kanban如何抉择?ivhbyfphe板与按照drpxcj
  18. Windows与ipad共享文件
  19. Shell脚本之IP验证
  20. Qt(c++)调用python一直报错slot、hypot等

热门文章

  1. 【深度学习】PyTorch深度学习训练可视化工具visdom
  2. 【Python入门】Python之OS模块39个常用函数详解
  3. 再谈序列化推荐-集成item类目属性
  4. MLP is Best?
  5. 如何科学地完成一场 AR 发布会?
  6. 三年深入探索,网易云信让在线医疗做到技术“在线”
  7. 216位攻城狮送给程序猿的10个新年礼物
  8. [译] D3.js 嵌套选择集 (Nested Selection)
  9. Java 内部类示例
  10. 代码管理 ,git 命令整理