Java多线程

让计算机看起来可以干很多事情。

计算机在用它的超高运行性能碾压人类的反应速度。

手机对着电脑屏幕扫描,因为变换频率相差不大,所以会闪。

酷睿多核,保证电脑可以在物理上实现多线程。

进程是操作系统中运行的一个任务。

进程是一块包含了某种资源的内存区域。操作系统利用进程把它的工作

划分为一些功能单元。

线程只能归属于一个进程并且它只能访问该进程所拥有的资源。

当操作系统创建一个进程后,该进程会自动申请一个名为主线程或首要线程的线程。

每个进程有一段独立的内存。

一个线程是进程的一个顺序执行流。

线程没有独立的内存。多个线程共享进程的内存。

同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈。

线程在切换负载小,因此线程也被称为轻负载进程。一个进程中包多个线程。

进程是操作系统级别运行的任务。进程至少需要一个线程。

线程是进程中独立运行的一个任务。每个应用程序都是一个进程。

线程使用的场合

线程通常用于在一个程序中需要同时完成多个任务的情况。我们可以将每个任务定义为

一个线程,使他们得以一同工作。

也可以用于在单一线程中可以完成,但是使用多线程可以更快的情况。如下载文件。

多线程是并发运行的。(面试时一定要这么说)

多个线程“同时”运行只是我们感官上的一种表现。事实上线程是并发运行的,OS将时间划分为很多时间片段(时间片),尽可能均匀分配给每一个线程,获取时间片段的线程被

CPU运行,而其他线程全部等待。所以微观上是走走停停的,宏观上都在运行。这种现象较并发,

但是不是绝对意义上的“同时发生”。

线程专门有一个调度器。

CPU给哪个线程,哪个线程就开始运行。

引起线程阻塞的可能有:IO阻塞,睡眠阻塞。

线程调度器只能保证在分配时间片时分得的概率是一样的。线程调度室不可控的。

原文地址:https://www.cnblogs.com/liaoxiaolao/p/9593644.html