[Java]Java初学之多线程01
Intro
写完上一篇博客就立刻开始了Java多线程的学习
学习这个东西还是得趁热打铁,一两天不学感觉知识要从脑子里流走了(不要啊(≧□≦)ノ)
就是这样,这篇文章主要集中在Java多线程的相关内容,可能会分篇写。
正文
程序(Program)、进程(Process)、线程(Thread)
在正式学习内容之前,我觉得先搞明白“这些内容是什么,和先前的内容有什么关系”是很重要的
因此花一小段从我的角度尝试解释程序、进程、线程这三程分别是什么,之间又有什么联系
程序(Program):
是一个静态文件,被编写后由解释器来执行,实现某个特定任务
进程(Process):
进程是操作系统中一个独立的执行单元,包含了程序的代码、数据和系统资源的副本
一个进程可以同时运行多个程序。每个进程都是独立、互不干扰的
线程(Thread):
线程是进程内部执行的更小的单元,共享进程的内存和资源
多个线程可以协同工作,共享相同的数据和资源
关系:
一个程序可以包含多个进程,一个进程可以包含多个线程
进程之间相互隔离,每个进程都有自己独立的内存空间,而在同一进程内的线程共享内存
用宝可梦比赛打个比方,程序就是宝可梦R赛,进程就是宝可梦R赛的不同赛区的比赛,大家在各自区域里举行大赛,大洋洲R赛、北美R赛之类,彼此的奖金池并不共享。而线程就是R赛里每位选手打的比赛,有很多选手打很多场比赛,他们共享同一个比赛场地和比赛奖金。
总而言之程序是代码的集合,进程是在操作系统中独立运行的程序实例,线程是进程内部的执行单元。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构