多线程
系统软件都是通过操作系统(os)去调用cpu进行运算。
每个程序启动会分一块空间,硬盘(自行车)慢,内存(高铁)快,cpu(火箭)还要比内存快好多。cpu有一个时钟频率,代表中断多少次,每中断就能执行一次指令。
每一个程序的内存是独立的
线程————-》一堆指令
操作系统调度cpu最小单位就是线程。线程被包含在进程之中,是进程中一个单一顺序的控制流。一个进程可以并发多个线程,每条线程执行不同的。
进程:一个程序(例如qq)要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用,内存的管理,网络接口的调用等。对各种资源管理的集合就可以称为进程。
进程 要操作cpu ,必须先创建一个线程,进程不能执行它是资源的集合。所有在一个同一个进程里的线程是共享同一块内存空间的。
一个cpu只能同时干一件事,但给了你能同时做多个任务的幻觉,因为它进行了上下文的切换,从停止的位置继续做。因为它太速度快了,你切换一次的任务时间能完成n次切换。一个线程就是一堆上下文在寄存器中的组合,线程和进程是不一样的,进程是一堆相关的进行运算的资源的集合,像一个屋子能做多个人和一个人,澄清一下,进程的相关资源包含内存的空间地址,所有在一个同一个进程里的线程是共享同一块内存空间的。
进程,一个程序的执行实例,每一个进程提供执行这个程序所用的所有资源,虚拟的地址空间,可执行的代码,调用的操作系统的接口,安全的权限,唯一的进程标识符(pid),优先级类,最小最大工作所需要的内存空间,至少使用一个线程,当启动一个进程的时候会自动启动一个线程,进程里的第一个线程就是主线程, 子线程是通过主线程创建的,但是子线程是独立的,主线程关闭子线程不会关闭。用各个线程创建子线程。
read more