当前位置: 首页 > news >正文

如何创建并运行java线程呢?

转自:

如何创建并运行java线程呢?

下文笔者将将创建一个java线程的方法分享,如下所示:

Java线程类是一个类,所以其也是一个object类
 它都继承自java.lang.Thread或其子类

创建线程类

Tread thread = new Thread();
-----执行线程,调用线程的start()方法
thread.start();

编写线程代码有两种方式

  1. 创建Thread子类的一个实例并重写run方法
  2. 创建类的时候实现Runnable接口

创建Thread的子类

 public class MyThread extends Thread {
   public void run(){
     System.out.println("MyThread running");
   }
}

//运行线程方法
MyThread myThread = new MyThread();
myTread.start();

//当线程启动start方法后,会立即返回 不会等待run方法运行完毕

------或创建一个匿名的Thread子类

Thread thread = new Thread(){
   public void run(){
     System.out.println("Thread Running");
   }
};

thread.start();

实现Runnable接口

public class MyRunnable implements Runnable {
   public void run(){
    System.out.println("MyRunnable running");
   }
}

Thread thread = new Thread(new MyRunnable());
//线程运行时,会调用Runnable接口中的run方法
thread.start();

//也可以采用创建Runnable接口的匿名类,如下所示:

Runnable myRunnable = new Runnable(){
   public void run(){
     System.out.println("Runnable running");
   }
}
Thread thread = new Thread(myRunnable);
thread.start();

线程名

当我们创建一个线程的时候
我们可以为每一个线程起一个名字,我们可以使用线程名区分不同线程
例:

 
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable, "New Thread");
       thread.start();
System.out.println(thread.getName());

获取当前进程的进程名

String threadName = Thread.currentThread().getName();

相关文章:

  • dubbo安装跟部署
  • ESP8266-Arduino编程实例-QRE1113红外反射传感器
  • 【Django】REST_Framework框架——Mixin类和GenericAPIView中的视图子类源码解析
  • Springboot、Tomcat启动加载外部指定文件夹下的jar文件
  • MySQL教程 - 索引(Index)
  • 神经网络做预测的原理,神经网络预测空气质量
  • java代码审计的点
  • alsa-lib和alsa-utils移植
  • SAP 电商云 Spartacus 服务器端渲染的单步调试详细步骤
  • 尚硅谷Vue系列教程学习笔记(12)
  • Flutter 高级教程之如何开发iOS Widget小组件展示SQLite本地数据库数据(教程含完整源码)
  • 5大指标:评估RPA项目的ROI,实现投资回报最大化
  • 神经网络模型的基本原理,神经网络模型是干嘛的
  • 猿创征文|【vue3学习】vue3中实现深拷贝
  • TiUP 镜像参考指南
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • angular2 简述
  • bootstrap创建登录注册页面
  • Facebook AccountKit 接入的坑点
  • If…else
  • iOS 系统授权开发
  • js如何打印object对象
  • mysql外键的使用
  • Promise初体验
  • spark本地环境的搭建到运行第一个spark程序
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • vue学习系列(二)vue-cli
  • 测试开发系类之接口自动化测试
  • 讲清楚之javascript作用域
  • 老板让我十分钟上手nx-admin
  • 前端路由实现-history
  • 正则与JS中的正则
  • AI算硅基生命吗,为什么?
  • ​​​​​​​​​​​​​​Γ函数
  • ​Java并发新构件之Exchanger
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (1)SpringCloud 整合Python
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (4)logging(日志模块)
  • (4.10~4.16)
  • (分布式缓存)Redis哨兵
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (篇九)MySQL常用内置函数
  • (十八)三元表达式和列表解析
  • (四)库存超卖案例实战——优化redis分布式锁
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (轉)JSON.stringify 语法实例讲解
  • 、写入Shellcode到注册表上线