java 创建线程的三种方法_java 创建线程的几种方式

说道线程,肯定会想到使用 java.lang.Thread.java这个类

那么创建线程也主要有2种方式

第一种方式:

public class MyThread extends Thread {

public void run() {

System.out.println("这是MyThread线程");

}

}

然后在调用处,执行start方法即可:

MyThread myThread = new MyThread();

myThread.start();

第二种方式实现Runnable接口:

public class MyRunnable implements Runnable {

public void run() {

System.out.println("这是MyThread线程");

}

}

同样在执行的地方直接生命这个MyRunnable,再直接丢进线程start即可:

MyRunnable runBary = new MyRunnable();

Thread thread = new Thread(runBary);

thread.start();

这两种方式都可以用匿名类的方式来实现,但是我并不推荐;

另外使用Thread本身来实现线程还是用Runnable来做,我推荐后者,因为相对来说会比较方便,直接往线程中一扔即可,如果使用spring的线程执行器也是同样的道理,往执行器中丢入这个runnable即可

c6926820edf69e24e7ace6df1f07fe19.png

需要注意的是,执行线程的时候可以使用start()方法或者run()方法,虽然使用run会达到同样的效果,但是run是在主线程中使用的,也就是使用你当前的方法内线程,而不是另起一个线程,这样就达不到异步的效果,所以务必使用start()

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【iOS】从实际出发理解多线程(二)--NSThread基础操作

简介 NSthread是苹果官方提供面向对象操作线程的技术,简单方便,可以直接操作线程对象,不过需要自己控制线程的生命周期。在平时使用较少,常用的就是下面的方法来获取当前线程。 [NSThread currentThread] 使用 1.实例初始化、属性…

双绞线制作方法和标准

双绞线的制作方法: 标准568B:橙白--1,橙--2,绿白--3,蓝--4,蓝白--5,绿--6,棕白--7,棕--8 (如图2) 标准568A:绿白--1,绿--2&#xff0c…

深入理解Java枚举类型(enum)

理解枚举类型 枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举…

Flash/Flex学习笔记(47):反向运动学(上)

先回顾上篇所说的"正向运动学":以人行走的例子来说,基本上可以理解为大腿驱动小腿,小腿驱动脚,从而引发的一系列姿态调整和运动。再举一个例子,我们用着拿一根软鞭或链条的一端挥舞,被手挥舞的这…

java tomcat jms_JavaWeb之使用Tomcat、JNDI与ActiveMQ实现JMS消息通信服务

前言之所以使用JNDI 是出于通用性考虑,该例子使用JMS规范提供的通用接口,没有使用具体JMS提供者的接口,这样可以保证我们编写的程序适用于任何一种JMS实现(ActiveMQ、HornetQ等)。什么是JNDI:JNDI(Java Naming and Directory Inte…

你是第几名:Excel 中 Large 和 Small 的用法

类似于 SQL 语言中的 TOP X, Large 和Small 有2个参数 Large(Array,k) Array 可以为一个单元格区域,k 为第k各最大值,Small 与之对应返回第k个最小值。 注意:单元格区域中的非数字会被忽略掉。 例子如下: 可以类比Rank的用法&…

mac系统下android studio创建手机模拟器

打开android studio,点击右上角的模拟器图标,打开“Android Virtual Device Manager” 窗口,如下图 点击“Create Virtual Device”,在打开的设备定义列表中,选择“Phone -> Nexus 5X”,右边列出了改机型…

如何设置Hyper-V的虚拟机快捷方式

在Windows Server 2008中,提供的Hyper-V功能,可以很方便地在企业环境中部署多个虚拟机,以适应不同的开发需要。一般我们都是通过下面的方式 1. 打开服务器管理器 2.打开Hyper-V管理器,找到有关的虚拟机,然后右键点击“…

java跨函数跳转_VS code 函数无法跨文件跳转到定义

现状:本文件函数通过this打点调用的函数,引入绝对路径的文件,调用的函数都可以通过Ctrl 点击 实现跳转到定义处。而如果在 webpack 通过alias 设置了别名,无法跳转成功。解决方案: 新建文件 jsconfig.json,配置如下。…

python enumerate()

描述 enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 语法 以下是 enumerate() 方法的语法: enumerate(sequence, [start0]) 参数 sequence -- 一个序列、迭代器…

java 怎么页面授权访问_Java调用Linkedin接口API之:获取授权

配置领英应用配置地址:https://www.linkedin.com/secure/developer?newapp强烈建议您使用 HTTPS网址必须是绝对网址 (例如: “https://example.com/auth/callbac”,而不是“/auth/callback”)网址参数会被忽略 (即 https://example.com/?id1 与 https:…

win7 'IIS APPPOOL\Classic .NET AppPool' 登录失败

进入iis管理器 本地应用程序池 选中classic. net appPool 选择右侧的 高级设置 进程模型 标识 将内置账户改为LOCAL SYSTEM 转载于:https://www.cnblogs.com/3rocks/archive/2010/06/02/1750091.html