Java EE:Thread类中run和start的区别

目录

1、run

2、start

总结:


        Java 的线程是通过 java.lang.Thread 类来实现的。JVM 启动时会有一个由主方法所定义的线程(main线程)。可以通过创建 Thread 的实例来创建新的线程,从而实现多线程。

        每个线程都是通过某个特定的 Thread 对象所对应的方法 run() 来完成其操作的,方法run() 称为线程体。通过调用 Thread 类的 start() 方法来启动一个线程。

1、run

        run() 方法在 java.lang.Runnable 接口中定义,必须在实现类中重写。

        run() 方法只是 Thread 中的一个普通方法,如果直接调用 run() 方法,程序中依旧只有主线程这一个线程,程序的执行路径还是只有一条。程序还是只能顺序执行,要等待 run 方法体执行完毕后,才能继续执行后面的代码,无法真正的实现多线程

2、start

        start() 方法在 java.lang.Thread 类中定义。

        start 使线程开始执行。用 start 启动线程,可以真正的实现多线程运行,无需等待 run() 方法体代码执行完毕,而是可以直接继续执行后面的代码。通过 Thread 类的start() 方法来启动一个线程,这时候线程处于就绪状态(Runnable),但是并没有运行。通过此 Thread 类调用方法 run() 来完成操作,这里方法 run() 被称为线程体,它包含了要执行的这个线程的内容,run() 方法运行结束,此线程即终止,然后CPU去运行其他线程。 

总结:

        总之,调用 start() 方法才可以启动线程,而 run() 方法就是 Thread 中的一个普通方法,而且还是在主线程中执行的。把需要并行处理的代码放到 run() 方法中,start() 方法启动线程将自动调用 run() 方法。

        run() 无法真正的实现多线程。

        start() 可以真正的实现多线程运行。

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

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

相关文章

Memcached 教程之 Memcached set 命令(五)

Memcached set 命令 Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中。 如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。 语法: set 命令的基本语法格式如下: set key…

【MySQL】DQL-排序查询-语法&注意事项&可cv例题语句

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

【运维】Elsatic Search学习笔记

基本使用 Elasticsearch(简称ES): 是一个开源的高扩展的分布式全文搜索引擎 Docker安装Elasticsearch1 version: "3.1" services:elasticsearch:image: elasticsearch:7.13.3container_name: elasticsearchprivileged: trueenvironment:- "cluster.nameelast…

Redis经典面试笔试题整理汇总20题-指令举例-代码演示

五、Redis经典面试笔试题 Redis经典面试笔试题和大厂面试笔试题涉及的内容相当广泛,主要围绕Redis的基本概念、特性、数据结构、使用场景以及性能优化等方面。以下是一些常见的Redis面试题目及其解答: 题目1:Redis是什么?简述它…

数字孪生关键技术及体系架构

摘要: 数字孪生以各领域日益庞大的数据为基本要素,借助发展迅速的建模仿真、人工智能、虚拟现实等先进技术,构建物理实体在虚拟空间中的数字孪生体,实现对物理实体的数字化管控与优化,开拓了企业数字化转型的可行思路…

vue3+vite+cesium自定义材料处理

目录 存在问题 问题原因 解决思路 存在问题 在cesium1.99版本及以上,采用老的材料规格写法,基本上会出现如下问题,这个XXX重构的对象 报错add property XXXXX, object is not extensible 有些文章采用require,会报错require是undefined 问题原因 vue2采用Object.defi…

初始Java篇(JavaSE基础语法)(5)(类和对象(上))

个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 面向对象的初步认知 面向对象与面向过程的区别 类的定义和使用 类的定义格式 类的实例化 this引用 什么是this引用? this引用…

JS如何区分数组

在JavaScript中,你可以使用几种不同的方法来检测一个对象是否是数组。以下是一些常用的方法: 1.使用 Array.isArray() 方法 Array.isArray() 是一个静态方法,用于检测一个对象是否为数组。它返回一个布尔值。 let obj [1, 2, 3]; conso…

开源博客项目Blog .NET Core源码学习(13:App.Hosting项目结构分析-1)

开源博客项目Blog的App.Hosting项目为MVC架构的,主要定义或保存博客网站前台内容显示页面及后台数据管理页面相关的控制器类、页面、js/css/images文件,页面使用基于layui的Razor页面(最早学习本项目就是想学习layui的用法,不过最…

《Retrieval-Augmented Generation for Large Language Models: A Survey》 AI 解读

论文链接:Retrieval-Augmented Generation for Large Language Models: A Survey 论文标题:《Retrieval-Augmented Generation for Large Language Models: A Survey》 一译中文版地址: https://yiyibooks.cn/arxiv/2312.10997v5/index.htm…

【LeetCode】热题100 刷题笔记

T1 两数之和 题目 链接: https://leetcode.cn/problems/two-sum/submissions/517876748/?envTypestudy-plan-v2&envIdtop-100-liked 【刷题感悟】这道题用两层for循环也能做出来,但我们还是要挑战一下时间复杂度小于 O ( n 2 ) O(n^2) O(n2)的解…

麒麟系统安装GDAL

一. 配置环境 最新版容易出问题,日常使用的话,gdal3.3.3就可以了。如果你需要最新版的,可能要去别的地方找找了。 1. gdal-3.3.3 https://github.com/OSGeo/gdal/releases/download/v3.3.3/gdal-3.3.3.tar.gz 2. proj-6.2.1 https://downl…

智慧校园管理系统

一、项目介绍 1.1 项目简介 智慧校园管理系统:主要是以年级、班级为单位,进行老师和学生信息记录和统计功能。项目采用前后端分离架构思想,前端采用HTMLCSSVUE来实现页面效果展示,后端采用SpringBootMybatisPlus框架实现数据存储…

数据库----数据类型正确选择

mysql支持的数据类型: 数值型,如INT,BIGINT,FLOAT和decimal 日期和时间类型,如DATE,TIME和TIMESTAMP等 字符串类型,如VARCHAR,CHAR和BLOB 空间数据类型,如GEOMETRY,POINT和POLYGON J…

【Java笔记】实现延时队列2:Redis

文章目录 过期监听准备工作稍微复习下Jedis与JedisPool 模拟延时队列优缺点**优点**:**缺点**: ZSet 实现延时队列引入依赖模拟延时队列优缺点**优点**(跟过期监听一样):**缺点**: Reference Redis实现延时…

2024.2.6力扣每日一题——魔塔游戏

2024.2.6 题目来源我的题解方法一 贪心优先队列 题目来源 力扣每日一题;题序:LCP 30 我的题解 方法一 贪心优先队列 思路:使用贪心的思想,从左到右遍历,若遇到加上当前房间的生命值后小于等于0,由于需要…

论文阅读: Visual Attention Network

Motivation 自注意力机制在2D自然图像领域面临3个挑战: 视二维图像为一维序列。对于高分辨率图像,二次复杂度消耗太大。只捕捉空间适应性,忽略通道适应性。 Contribution 设计了 Large Kernel attention(LKA),包含卷积和自注意…

第三题:分数

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 1/11/21/41/8⋯ 每项是前一项的一半,如果一共有 20 项,求这个和是多少,结果用分数表示出来。 类似:3/2​,当然&…

虚拟机Linux(centos)安装python3.8(超详细)

一、Python下载 下载地址:https://www.python.org/downloads/source/ 输入下面网址即可直接下载: python3.8:https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz python3.6:https://www.python.org/ftp/python/3.6.5/…

复习中心极限定理

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 中心极限定理的核心概念: 中心极限定理(Central Limit Theorem)是统计学中的核心理论,指出当独立随机变量的样本量足够多时,它们的平均值将逐…