java之线程概念
java之线程概念
-
进程和线程的区别?
- 进程是程序中顺序控制流,进程本身依靠程序进行运行。管理所在程序的资源。
- 线程是进程的一个执行单元,是进程的内科调度实体,比进程更小的独立运行的基本单位。线程也被成为轻量级进程。
- 同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。
- 同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。
-
单线程和多线程区别?
- 单线程是指程序中只存在一个线程,实际上主方法就是一个主线程。
- 多线程是指一个程序中运行多个任务。目的是更好的使用cpu资源。
-
为什么会有线程?
- 每个线程都有自己的地址空间,即进程空间,在网络多对用户环境下,一个服务器通常需要接受大量不确定数量的并发请求,为每一个请求都创建一个进程显然行不通,系统开销大而且效率低,因此操作系统中进程概念被引进。
- 当线程在进行切换时,进程将会保护切换前线程所用资源。
- 每个线程都有自己的地址空间,即进程空间,在网络多对用户环境下,一个服务器通常需要接受大量不确定数量的并发请求,为每一个请求都创建一个进程显然行不通,系统开销大而且效率低,因此操作系统中进程概念被引进。
-
在java中,多线程真的只是多个线程在同时运行吗?
- 对于一个处理器(cpu)在某一个时间点上永远都只能是一个线程。单个cpu而言某个时间点只能是一个线程在运行, 所谓的多线程是通过调度获取cpu的时间片实现的,其实就相当于 cpu是一个人 多线程是几件事 ,cpu一下会干这件事,干一会儿时间片到了就干另一件 ,由于cpu计算速度很快很快,所以看起来就像几件事情在同时做着。
- 对于多核cpu,双核,四核,八核等等,这些是真的一起干的。看起来也是一起做的。
-
线程的生命周期