• 程序Program
• 程序是一段静态的代码,它是应用程序执行的蓝本(静态的代码)
• 进程Process
• 在操作系统中运行着的程序,有自己的地址空间(一个进程就是一个调度的应用程序)
• 线程Thread
• 进程内部的一个执行单元,它是程序中一个单一的顺序控制流程。
• 线程又被称为轻量级进程(lightweight process)
• 如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为多线程
• 进程的特点
• 动态性
• 并发性
• 独立性
• 线程特点
• 轻量级进程
• 独立调度的基本单位
• 可并发执行
• 共享进程资源
进程和线程的区别:
很多多线程是模拟出来的,真正的多线程是指有多个CPU,即多核。如果是模拟出来的多线程,即一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,因为切换得很快,所以就有同时执行的错觉。
•线程就是独立的执行路径;
•在CPU运行时,即时没有主动创建线程,后台也会存在多个线程,如gc线程、主线程。
•main()称为主线程,为系统的入口点,用于执行整个程序;
•在一个进程中,若开辟了多个线程,线程的运行由调度器安排调度,其先后顺序不可人为干预,因为调度器是与操作系统紧密相关的。
•对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制。
•线程会带来额外的开销,如CPU调度时间,并发控制开销。
•每个线程在自己的工作内存交互,加载和存储主内存控制不当会造成数据不一致。