首页 > 其他分享 >多线程-创建线程类

多线程-创建线程类

时间:2022-10-17 10:22:38浏览次数:66  
标签:run name Thread 创建 线程 子类 多线程 public

java使用Thread类代表线程 所有线程对象都必须时Thread类或者其子类的实例 每个线程的作用是完成一定的任务

实际上就是执行一段程序流即一端顺序执行的代码 java使用线程执行来代表这段程序流

Thread是隶属于java.lang包下

创建并启动多线程的步骤:

1.定义Thread类的子类 并重写该类的run()方法 该run()方法的方法体就代表了线程需要完成的任务 因此把run()方法称为线程执行体

2.创建Thread子类的实例 即创建了线程对象

3.调用线程对象的start()方法来启动该线程

主线程:执行main方法的线程

以前写的都是单线程程序:java程序中只有一个线程 执行main放 从上到下依次执行

单线程代码:

类:

public class Person {
private String name;

public Person(String name) {
this.name = name;
}

public Person() {
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
'}';
}
//成员方法
public void run(){
for (int i = 1; i <=20; i++) {
System.out.println(name+"------>"+i);
}
}

测试类:

public static void main(String[] args) {
Person z = new Person("张三");
z.run();
Person l = new Person("李四");
l.run();
}

 创建多线程程序的第一种方式

创建Thread类的子类

Thread类:是描述线程的类 我们想要实现多线程程序 就必须继承Thread类

实现步骤:

1.创建一根Thread类的子类

2.在Thread的子类中重写Thread类中的run方法 设置线程任务

3.创建Thread类的子类对象

4.调用Thread类中的方法start方法 开启新的线程 执行run方法

java程序属于抢占式调度 那个线程的优先级高 那个线程优先级执行 同一个优先级 随机选择一个执行  

代码:

//继承Thread类的子类
public class DemoMyThread extends Thread {
//2.在Thread的子类中重写Thread类中的run方法 设置线程任务

@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println("run"+i);
}
}
}
class test01{
public static void main(String[] args) {
//3.创建Thread类的子类对象
DemoMyThread my = new DemoMyThread();
//4.调用Thread类中的发AN官方start方法 开启新的线程 执行run方法
my.start();
for (int i = 0; i <20; i++) {
System.out.println("main"+i);
}
}
}

运行结果:

第二次运行结果:

 

 第二个运行结果的前三个是没有顺序的

 注意:那个线程的优先级高 那个线程优先级执行 同一个优先级 随机选择一个执行

多线程原理

先画个多线程执行时序图来体现一下多线程程序的执行流程

标签:run,name,Thread,创建,线程,子类,多线程,public
From: https://www.cnblogs.com/shenziyi/p/16798205.html

相关文章

  • DEMO: BAPI_SALESORDER_CREATEFROMDAT2 创建销售订单
    货铺QQ群号:834508274进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合不修改昵称会被不定期踢除,谢谢配合下面开始干货:R......
  • DEMO:VA01创建贷项订单SD_SALESDOCUMENT_CREATE
    货铺QQ群号:834508274进群统一修改群名片,例如BJ_ABAP_森林木。群内禁止发广告及其他一切无关链接,小程序等,进群看公告,谢谢配合不修改昵称会被不定期踢除,谢谢配合如果使用BAPI......
  • DEMO:BAPI_CUSTOMERRETURN_CREATE创建退货单
    ​*&---------------------------------------------------------------------**& Report  ZDEMO_VA01*&*&----------------------------------------------------------......
  • sealos 创建单节点集群
    参考kuberentes-life-cycle#sealosversionmust>=v4.1.0$sealosrunlabring/kubernetes:v1.25.0labring/helm:v3.8.2labring/calico:v3.24.1--single......
  • 操作系统实验:多进程、IPC进程间通信、线程间通信
      SHANGHAI UNIVERSITY操作系统(一)实验报告 组   号第4组学号姓名20120889曹中阳实验序号实验三日期2022年9月10日......
  • 驱动开发:内核枚举驱动内线程(答疑篇)
    这篇文章比较特殊,是一篇穿插答疑文章,由于刚好在前一篇教程《驱动开发:内核枚举PspCidTable句柄表》整理了枚举句柄表的知识点,正好这个知识点能解决一个问题,事情是这样的有一......
  • 8.MongoDB系列之创建副本集(一)
    1.复制简介在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃......
  • 9.MongoDB系列之创建副本集(二)
    1.如何设计副本集大多数:选取主节点时需要由大多数决定,主节点只有在得到大多数支持时才能继续作为主节点,写操作被复制到大多数成员时就是安全的写操作。这里的大多数定义......
  • 创建Django项目的两种方式
    有两种方式可创建django项目:方式一:命令行1.cmd命令行,进入到指定的目录,执行:django-adminstartproject mydiary【mydiary为项目名】,创建成功之后,出现如下:mydiary/......
  • DEMO: MIRO 根据物料创建贷项凭证BAPI_INCOMINGINVOICE_CREATE
    QQ群:SAP干货铺, 群号:775662808所有群管理严格,严格禁止一切外来链接、招聘、广告等垃圾信息!MIRODemo*&---------------------------------------------------------------......