Java多线程 继承Thread类

目录

  • 程序 进程 线程
  • 多线程
  • 实例
    • 创建线程
    • 测试线程

程序 进程 线程

  • 程序,进程和线程是操作系统中的基本概念,它们在多线程编程中起着重要的作用。

    • 程序:程序是一组指令的集合,用于实现特定的功能。程序通常是静态的,在程序运行之前已经编写完成。

    • 进程:进程是程序在操作系统中的执行实例。每个进程都有独立的内存空间和系统资源,互不干扰。进程之间可以通过进程间通信(IPC)进行数据交换。进程的状态信息保存在进程控制块(PCB)中。

    -线程:线程是进程中的一个执行单元,共享进程的内存空间和系统资源。线程之间可以通过共享内存进行通信,因此线程间通信更加高效。线程的状态信息保存在线程控制块(TCB)中。多线程可以实现并发执行任务,提高程序的执行效率。

在Java中,多线程通过Thread类和Runnable接口实现。每个Thread对象代表一个线程,可以执行run()方法中的代码。通过创建多个Thread对象或Runnable对象,可以同时执行多个任务,实现并发执行。在多线程编程中,需要注意线程安全问题,如数据同步、死锁、竞态条件等,需要使用synchronized关键字、Lock对象等机制来保证线程安全。

多线程

Java多线程是Java编程语言中用于实现并发的一种机制。在Java中,可以使用Thread类和Runnable接口来创建和管理线程。

要实现多线程,需要执行以下步骤:

  1. 创建一个Thread类或Runnable接口的实现类。
  2. 实现run()方法,该方法包含线程执行的代码。
  3. 创建Thread对象或Runnable对象,并调用start()方法启动线程。
  4. 在程序中等待所有线程执行完毕。

Java多线程可以用于实现并发执行任务、提高程序的执行效率、节省资源等。但是,多线程编程也需要注意线程安全问题,如数据同步、死锁、竞态条件等,需要使用synchronized关键字、Lock对象等机制来保证线程安全。

实例

创建线程

public class TestThread extends Thread{/*一会线程对象就要开始争抢资源了,这个线程要执行的任务到底是啥?这个任务你要放在方法中但是这个方法不能是随便写的一个方法,必须是重写Thread类中的run方法然后线程的任务/逻辑写在run方法中*/@Overridepublic void run() {//输出1-10for (int i = 1; i <= 10000 ; i++) {System.out.println(i);}}
}

测试线程

public class Test {//这是main方法,程序的入口public static void main(String[] args) {//主线程中也要输出十个数:for (int i = 1; i <= 10 ; i++) {System.out.println("main1-----"+i);}//制造其他线程,要跟主线程争抢资源://具体的线程对象:子线程TestThread tt = new TestThread();//tt.run();//调用run方法,想要执行线程中的任务 -->这个run方法不能直接调用,直接调用就会被当做一个普通方法//想要tt子线程真正起作用比如要启动线程:tt.start();//start()是Thread类中的方法//主线程中也要输出十个数:for (int i = 1; i <= 10000 ; i++) {System.out.println("main2-----"+i);}}
}

在这里插入图片描述

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

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

相关文章

【开源】基于JAVA+Vue+SpringBoot的班级考勤管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统基础支持模块2.2 班级学生教师支持模块2.3 考勤签到管理2.4 学生请假管理 三、系统设计3.1 功能设计3.1.1 系统基础支持模块3.1.2 班级学生教师档案模块3.1.3 考勤签到管理模块3.1.4 学生请假管理模块 3.2 数据库设…

Java学习笔记------ArrayList(二)

基本数据类型对应的包装类 byte------Byte、short------Short char------Character、int------Intege long------Long、float------Float double------Double、boolean------Boolean 例如&#xff1a; import java.util.ArrayList; public class test01{public static vo…

Arduino 开发环境

Arduino 刚开始挺简单的&#xff0c;买一块 UNO 或者 Nano&#xff0c;官网下载 IDE &#xff08;在线的就算了&#xff0c;太慢&#xff09;&#xff0c;立即就可以开始编程了&#xff0c;至少让板载 LED 亮起来没问题。这也是 Arduino 亲儿子的优势&#xff0c;省心。 不过你…

云服务器操作系统Windows和Linux镜像有什么区别?

阿里云服务器镜像Windows和Linux操作系统有什么区别&#xff1f;性能有差异吗&#xff1f;有&#xff0c;同配置下Linux性能要优于Windows&#xff0c;但这与阿里云无关&#xff0c;仅仅是linux和windows之间的区别。另外&#xff0c;阿里云提供的windows和linux操作系统均为正…

Java中 HashSet如何判断两个对象是否相等

HashSet如何判断两个对象是否相等 HashSet 是 Java 中的一个类&#xff0c;它实现了 Set 接口。HashSet 中的元素是无序且唯一的&#xff0c;它不保证元素的顺序&#xff0c;也不允许出现重复元素。为了确定两个对象是否相等&#xff0c;HashSet 使用了以下两个方法&#xff1…

LeetCode、338. 比特位计数【简单,位运算】

文章目录 前言LeetCode、338. 比特位计数【中等&#xff0c;位运算】题目链接与分类思路位运算移位处理前缀思想实现 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java…

Vue3快速上手(三)Composition组合式API及setup用法

一、Vue2的API风格 Vue2的API风格是Options API,也叫配置式API。一个功能的数据&#xff0c;交互&#xff0c;计算&#xff0c;监听等都是分别配置在data, methods&#xff0c;computed, watch等模块里的。如下&#xff1a; <template><div class"person"…

Leetcode 606.根据二叉树创建字符串

给你二叉树的根节点root&#xff0c;请你采用前序遍历的方式&#xff0c;将二叉树转化为一个由括号和整数组成的字符串&#xff0c;返回构造出的字符串。 空节点使用一对空括号对"root"表示&#xff0c;转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射…

[ai笔记1] 借着“ai春晚”开个场

1 文思ai笔记-新的开始 今天是2024年2月29日&#xff0c;也是传统农历的除夕夜。早起在ai圈看到一个比较新奇的消息&#xff0c;ai春晚今日举办&#xff0c;竟然有一点小小的激动。这些年确实好久没看过春晚了&#xff0c;自己对于春晚的映像还停留在“白云黑土”、“今天&…

论文解读:MobileOne: An Improved One millisecond Mobile Backbone

论文创新点汇总&#xff1a;人工智能论文通用创新点(持续更新中...)-CSDN博客 论文总结 关于如何提升模型速度&#xff0c;当今学术界的研究往往聚焦于如何将FLOPs或者参数量的降低&#xff0c;而作者认为应该是减少分支数和选择高效的网络结构。 概述 MobileOne(≈MobileN…

react【五】redux/reduxToolkit/手写connext

文章目录 1、回顾纯函数2、redux2.1 redux的基本使用2.2 通过action修改store的数值2.3 订阅state的变化2.4 目录结构2.5 Redux的使用过程2.6 redux的三大原则2.7 Redux官方图 3、redux在React中的使用4、react-redux使用4.1 react-redux的基本使用4.2 异步请求 redux-thunk4.3…

课时26:内容格式化_常用符号解读_终端输出

3.1.2 终端输出 学习目标 这一节&#xff0c;我们从 后台执行、信息符号、小结 三个方面来学习。 后台执行 简介 & 就是将一个命令从前台转到后台执行,使用格式如下&#xff1a;命令 &简单演示 前台执行休眠命令 [rootlocalhost ~]# sleep 4 界面卡住4秒后消失后…

字符串大小比较的方法以及函数的多返回值

1.字符串的大小比较: 按照ASCII码表的值进行比较字符串大小 print(f"abc大于abd,结果为{abc>abd}") #结果为布尔类型False print(f"a大于A,结果为{a>A}") #True print(f"key1大于key2,结果为{key1>key2}") #False 2.函数的多返回值: …

分布式文件系统 SpringBoot+FastDFS+Vue.js

分布式文件系统 SpringBootFastDFSVue.js 一、分布式文件系统1.1.文件系统1.2.什么是分布式文件系统1.3.分布式文件系统的出现1.3.主流的分布式文件系统1.4.分布式文件服务提供商1.4.1.阿里OSS1.4.2.七牛云存储1.4.3.百度云存储 二、fastDFS2.1.fastDSF介绍2.2.为什么要使用fas…

<s-table>、<a-table>接收后端数据

对于 中的 <template #bodyCell“{ column, record }”> &#xff1a; <s-tableref"table":columns"columns":data"loadData":alert"options.alert.show"bordered:row-key"(record) > record.id":tool-config&…

MacOS - M1芯片 Mac 在“恢复”模式中启用系统扩展教程

部分软件需要开启系统扩展才能正常使用&#xff0c;但是默然M1芯片的Mac不能直接打开系统扩展&#xff0c;如下两图。 若要启用系统扩展&#xff0c;您需要在“恢复”环境中修改安全性设置。 若要执行此操作&#xff0c;请将系统关机&#xff0c;然后按住触控ID或电源按钮以开…

MATLAB 1:基础知识

MATLAB中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。这六种基本的数据类型都是按照数组形式存储和操作的。 MATLAB中还有两种用于高级交叉编程的数据类型&#xff0c;分别是用户自定义的面向对象的用户类类型和Java类类型。 1.1.1数值类…

Stable Diffusion 模型下载:majicMIX reverie 麦橘梦幻

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

二级 C 语言笔试-12

一、选择题 1. 软件是指 A) 程序 B) 程序和文档 C) 算法加数据结构 D) 程序、数据与相关文档的完整集合 2. 下面不属于软件设计原则的是 A) 抽象 B) 模块化 C) 白底向上 D) 信息隐蔽 3. 树是结点的集合&#xff0c;它的根结点的数目是( )。 A) 有且只有 1 个 B) 1 或多于 1 C) …

洛谷: P9749 [CSP-J 2023] 公路

思路: 贪心思想指的是在对问题求解的时候&#xff0c;总是能做出在当前看来是最好的选择,也就是说&#xff0c;如果要得到整个问题的最优答案&#xff0c;那么要求每一步都能做出最好的选择&#xff08;feihua&#xff09;。 在这道题里面&#xff0c;我们希望在来到第i站的时…