线程是什么?它和进程有什么区别和联系?
创始人
2025-05-29 04:51:21

目录

1. 线程概念

2. 创建线程的多种方式

   2.1 继承自Thread类,重写run方法.

   2.2 实现Runnable接口,重写run方法.

   2.3 继承Thread类,使用匿名的内部类

   2.4 实现Runnable,使用匿名内部类

   2.5 lambda表达式

3. 它与进程的区别和联系


1. 线程概念

    线程是更轻量级的进程,是操作系统调度的基本单位,一个进程中的多个线程共用同一个进程资源(资源复用).多个线程可以在一个CPU核心上通过不断快速调度执行,也可以在多个CPU核心上同时执行. 举个例子:学校的一号食堂算一个进程,那么线程就是食堂的窗口,一个食堂有多个窗口.每个食堂窗口都占用一号食堂的某个位置.

注:只有第一个线程创建时,才会分配独立的资源,再次创建新的线程后,会大量减少申请的资源,提高创建和销毁的效率.此外,如果一个进程中的某个线程出现异常,那么可能会影响整个进程崩溃.


2. 创建线程的多种方式

      默认会有一个main主线程.start()方法会创建新的线程,而单独调用run()方法不会创建新的线程.

   2.1 继承自Thread类,重写run方法.

//1.继承Thread类,重写run方法
class ThreadDemo1 extends Thread{@Overridepublic void run() {while (true) {System.out.println("ThreadDemo1");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}
}//在main方法中Thread thread1 = new ThreadDemo1();//1.继承Thread类,重写run方法//ThreadDemo1thread1.start();

   2.2 实现Runnable接口,重写run方法.

//2.实现Runnable接口,重写run方法
class ThreadDemo2 implements Runnable {@Overridepublic void run() {while (true) {System.out.println("ThreadDemo2");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}
}//在main方法中//2.实现Runnable接口,重写run方法//ThreadDemo2Runnable runnable = new ThreadDemo2();Thread thread2 = new Thread(runnable);thread2.start();

   2.3 继承Thread类,使用匿名的内部类

//3.使用匿名内部类,继承Thread类Thread thread3 = new Thread(new Thread() {@Overridepublic void run() {while (true) {System.out.println("ThreadDemo3");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}});thread3.start();

   2.4 实现Runnable,使用匿名内部类

//4.使用匿名内部类,实现Runnable接口Thread thread4 = new Thread(new Runnable() {@Overridepublic void run() {while (true) {System.out.println("ThreadDemo4");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}});thread4.start();

   2.5 lambda表达式

//5.使用lambda表达式Thread thread5 = new Thread(() -> {while (true) {System.out.println("lambda");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});thread5.start();

3. 它与进程的区别和联系

       ● 区别

          ① 线程是操作系统调度运行的基本单位,而进程是操作系统资源分配的基本单位.

          ② 每个进程有独立的资源,而同一进程的多个线程共用同一份进程的系统资源.

          ③ 一个程序并发完成多个任务,采用多线程实现,更高效且节约资源,但不具有隔离性.而多进程是为了保证多个程序间的隔离性,相互不影响.

       ● 联系       

          一个进程包含一个或多个线程,同一个进程中的一个线程出现异常,那么该进程很容易会崩溃,且该进程中的其它线程也无法正常调度.


分享完毕~

相关内容

热门资讯

实用的 PyYAML 使用技巧 AML 是一个被广泛使用的数据序列化和配置语言,作为一个开发者,总是不免...
C语言学习之路--指针篇 目录一、前言二、指针一、指针是什么1、指针的重要理解2、指针变量3、其他问题二、指针和指针类型1、指...
最牛,狂赚近70%! 最牛,狂... 【导读】前5月主动权益类基金平均净值增长率为2.43%,最牛业绩逼近70%中国基金报记者 方丽 曹雯...
电容笔和Apple penci... 跟Apple Pencil最主要不同,市场上大部分的电容笔都没有重力的压感࿰...
便携制氧机方案——PCBA/芯...   便携制氧机采用分子筛的吸附性能,通过物理原理,以无油压缩机为动力&#...
考研复试——离散数学 三年疫情都没有笔试,今年恢复,大概率会有笔试。 2023年3月19号&#...
分布式任务处理XXL-JOB 分布式任务处理XXL-JOB 什么是分布式任务调度 对一个视频的转码可以理解为一个任务的执行...
DirectX12(D3D12... 目录1、前言1.1、一些感慨1.2、运行效果展示1.3、示例简介1.4、示例操作说明1.5、本章内容...
小红书运营工具有哪些?新手运营...   很多人多多少少都会觉得小红书运营有一定的难度。但是其实在解决这些难题的时候,我们也...
Jetson NX 配置 py... Jetson NX 配置pytorch 参考文档 官方教程–还得是官方啊 参考博客1 参考博客...
c++ error:cross... 最近在写代码的时候,碰到了 crosses initialization of ......
XShell安装配置教程及云服... 目录一、 XShell的作用二、 下载XShell1.访问XShell官网,填写姓名和...
五年五任!道通科技任命90后董... 【高管动态】深圳市道通科技股份有限公司的董秘,也许是最不好干的岗位之一了。根据道通科技(600208...
C++初阶——前言 目录 1. 什么是C++ 2. C++的发展史 3. C+&...
每周股票复盘:西部矿业(601... 截至2025年5月30日收盘,西部矿业(601168)报收于15.8元,较上周的16.07元下跌1....
特朗普癫了?突然反咬中美贸易协... 知道他会反口,没想到这么快反口。不然为什么叫“疯王”呢?从昨晚到现在,特朗普又搞出三件大事:反咬中国...
DevOps是什么?DevOp... 目录专栏导读一、DevOps是什么?二、为什么会出现DevOps?1、容...
“石家庄富豪”要签50亿美元大... 频繁资产腾挪,收效如何? 作者 | 伍玥 编辑丨高岩 来源 | 野马财经 创新生物医药的出海热潮正在...
【零基础入门SpringBoo... 一、上手第一个程序 1、系统要求 此处以我自己使用的版本为例,在后期学习过程中遇到一...
马斯克黯然下课,临走前给特朗普... 黯然下课,马斯克要走了。5月底,马斯克正式宣布,即将卸任“政府效率部”部长职务,为其在特朗普政府的任...
Scala函数式编程 一、基本函数编程 在Scala 中函数式编程和面向对象编程完美融合在一起了 1 基础概念 1&#...
ChatGPT-4 前两天推出 ChatGPT-4,其创建者 OpenAI 展示了该机器人的增强功能——包...
UEFI 基础教程 (十三) ... 一、 修改UEFI UiApp源代码 修改 FrontPageStrings.uni 与 Front...
首进品牌超30%,餐饮选址新风... 总第4232期作者 |餐饮老板内参内参君逃离商场的餐饮人,正把店开到“高质价比商业体”“可能要撤店了...
94:二叉树的中序遍历 94:二叉树的中序遍历 总结 给定一个二叉树的根节点 root ,返...
03 - 初识Linux进程 ---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接:(更新中&...
中年男人又一宝?新型护肝科技一... 凌晨一点的上海陆家嘴,写字楼里依然灯火通明。30岁互联网大厂产品经理张磊目不转睛盯着电脑屏幕,手机健...
零入门kubernetes网络... 《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7...
“一部手机游景区”,带你玩转V... “一部手机游景区”已经不再是一个概念,现在各地纷纷大力发展VR智慧景区,...
Pytorch学习笔记--多G... 目录 1--前言 2--报错代码 3--解决方法 1--前言         最近在复现一篇 Pa...