多线程(一)概念

• 程序Program
  • 程序是一段静态的代码,它是应用程序执行的蓝本(静态的代码)

• 进程Process
  • 在操作系统中运行着的程序,有自己的地址空间(一个进程就是一个调度的应用程序)

• 线程Thread
  • 进程内部的一个执行单元,它是程序中一个单一的顺序控制流程。
  • 线程又被称为轻量级进程(lightweight process)
  • 如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为多线程

• 进程的特点
  • 动态性
  • 并发性
  • 独立性

• 线程特点
  • 轻量级进程
  • 独立调度的基本单位
  • 可并发执行
  • 共享进程资源

进程和线程的区别:

  很多多线程是模拟出来的,真正的多线程是指有多个CPU,即多核。如果是模拟出来的多线程,即一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,因为切换得很快,所以就有同时执行的错觉。

  •线程就是独立的执行路径;

  •在CPU运行时,即时没有主动创建线程,后台也会存在多个线程,如gc线程、主线程。

  •main()称为主线程,为系统的入口点,用于执行整个程序;

  •在一个进程中,若开辟了多个线程,线程的运行由调度器安排调度,其先后顺序不可人为干预,因为调度器是与操作系统紧密相关的。

  •对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制。

  •线程会带来额外的开销,如CPU调度时间,并发控制开销。

  •每个线程在自己的工作内存交互,加载和存储主内存控制不当会造成数据不一致。

  

猜你喜欢

转载自www.cnblogs.com/zhaideang/p/12359864.html
今日推荐