JAVA并发编程

JAVA并发编程

概述

线程:线程是是操作系统能够运行调度的最小单位,是进程的实际运作单位。

在普通的方法调用的时候只有主线程一条执行路径:

JAVA并发编程_第1张图片

多线程:多个线程之间独立运作,可以同时运行的功能。

JAVA并发编程_第2张图片

在我们操作系统运行的程序就是进程,比方说QQ,播放器,游戏,idea运行。一个进程可以有多个线程,比方说看视频的时候同时听到声音,看图像,看字幕等等。拿程序来说,程序是指令和数据的有序集合,其本身没有任何的含义,是一个静态的概念,而进程它是执行程序的一次执行过程,它是一个动态的概念,是系统资源分配的单位,通常一个进程中至少有一个线程,不然没有存在的意义,线程是CPU调度和执行的单位。

注意!

很多线程都是模拟出来的,真正的多线程是有多个CPU,即多核,如服务器,如果是模拟出来的多线程,在一个cpu的情况下,在同一个时间下,因为切换的很快,所以就有同时执行的错觉

总结:

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

  • 在程序运行时,即使自己没有创建线程,后台也会有多个线程,如主线程,gc线程;

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

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

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

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

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

你可能感兴趣的:(并发编程,java,开发语言)