什么是进程和线程?
本文最后更新于48 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

从操作系统角度:

  • 进程是运行着的程序,他是程序在操作系统的一次执行过程,是一个程序的动态概念。进程是操作系统进行资源分配的基本单位。
  • 线程可以理解成一个进程的执行实体,是比进程粒度更小的执行单元,也是真正运行在CPU上的执行单元。线程是处理器任务和资源调度的基本单位。

进程中可以包含多个线程,进程之间不会相互影响,但是线程之间可以共享数据,也因此会有线程安全问题

 

从Java的角度:

  • 启动一个Java程序,操作系统就会创建一个Java进程。
  • 在一个进程里可以创建多个线程,在一个Java程序里,可以自定义创建多个线程,线程拥有各自独立的程序计数器、堆栈和局部变量等属性,并且可以访问共享的内存变量。

 

线程和进程的其他区别:

  • 每个进程有独立的代码和数据空间,程序之间切换会有较大开销。而同一类线程共享代码和数据空间(堆),每个线程都有自己独立的运行栈和程序计数器,线程之间切换开销小。
  • 一个线程内可以有多个线程,这多个线程不是按一条线完成的,而是可以有多根线
  • 一个进程崩溃后,在保护模式下不会对其他进程造成影响。但一个线程崩溃可能导致整个进程死掉
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇