Intro
写完上一篇博客就立刻开始了Java多线程的学习
学习这个东西还是得趁热打铁,一两天不学感觉知识要从脑子里流走了(不要啊(≧□≦)ノ)
就是这样,这篇文章主要集中在Java多线程的相关内容,可能会分篇写。
正文
程序(Program)、进程(Process)、线程(Thread)
在正式学习内容之前,我觉得先搞明白“这些内容是什么,和先前的内容有什么关系”是很重要的
因此花一小段从我的角度尝试解释程序、进程、线程这三程分别是什么,之间又有什么联系
程序(Program):
是一个静态文件,被编写后由解释器来执行,实现某个特定任务
进程(Process):
进程是操作系统中一个独立的执行单元,包含了程序的代码、数据和系统资源的副本
一个进程可以同时运行多个程序。每个进程都是独立、互不干扰的
线程(Thread):
线程是进程内部执行的更小的单元,共享进程的内存和资源
多个线程可以协同工作,共享相同的数据和资源
关系:
一个程序可以包含多个进程,一个进程可以包含多个线程
进程之间相互隔离,每个进程都有自己独立的内存空间,而在同一进程内的线程共享内存
用宝可梦比赛打个比方,程序就是宝可梦R赛,进程就是宝可梦R赛的不同赛区的比赛,大家在各自区域里举行大赛,大洋洲R赛、北美R赛之类,彼此的奖金池并不共享。而线程就是R赛里每位选手打的比赛,有很多选手打很多场比赛,他们共享同一个比赛场地和比赛奖金。
总而言之程序是代码的集合,进程是在操作系统中独立运行的程序实例,线程是进程内部的执行单元。
标签:01,Java,比赛,程序,线程,进程,多线程 From: https://www.cnblogs.com/zoexcode/p/17774631.html