线程简介

CPU 线程和操作系统线程

       CPU 线程指的是在硬件级别能同时做的事情。多核 CPU 的每个核各⾃独⽴运⾏,因此每个核⼀个线程。

1
四核⼋线程:CPU 硬件⽅在硬件级别对 CPU 进⾏了⼀核多线程的⽀持(本质上依然是每个核⼀个线程)

       操作系统线程指的即是 Thread,操作系统利⽤时间分⽚的⽅式,把 CPU 的运⾏拆分给多条运⾏逻辑,即为操作系统的线程。

       单核 CPU 也可以运⾏多线程操作系统。

线程是什么

       按代码顺序执⾏下来,执⾏完毕就结束的⼀条线。

1
2
UI 线程为什么不会结束?
因为它在初始化完毕后会执⾏死循环,循环的内容是刷新界⾯。只要在刷新界面的时候不要出现死循环,界面便不会卡死。

线程和进程的区别

       一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。是否共享资源(数据)是进程和线程最大的区别。

参考资料:
腾讯课堂 HenCoder
骑小猪看流星 必须要理清的Java线程池

Fork me on GitHub