首页 > 代码库 > 多线程
多线程
程序进入内存时,即变成一个进程,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位
进程三个特征:
独立性:进程是系统中独立存在的实体,拥有自己独立的资源,有自己私有的地址空间,没有经过进程本身允许的情况下,一个用户进程不能直接访问其他进程的地址空间
动态性:进程与程序的区别在于,程序是静态的指令集合,而进程是正在系统中活动的指令集合,进程中加入的时间概念,进程有自己的生命周期和各种不同的状态,程序不具备这些
并发性:多个进程可以在单个处理器上并发执行,多个进程间不会互相影响
并发和并行:
并行是同一时刻,多个指令在多个处理器上同时执行
并发指在同一时刻只有一条指令执行,但多个进程指令被快速轮换,宏观上被同时执行
并发方式:
共用式的多任务操作策略
抢占式多任务操作策略:效率更高更常用
多线程:
扩展了多进程,使得同一个进程可以同时并发处理多个任务。
线程thread也被称为轻量级进程,是进程的执行单元,类似进程在操作系统中的地位,线程在程序中是独立的,并发的执行流,进程初始化后,主线程就被创立。
线程是进程的组成部分,一个进程有多个线程,一个线程必须有一个父进程,线程可以有自己的堆栈,自己的程序计数器和局部变量,但不能拥有系统资源,与父进程的其他线程共享该进程的全部资源。
线程是独立运行的,不知道进程中其他线程的存在,执行时抢占式的
一个线程可以创建和撤销另一个线程,同一个进程中多个线程可以并发执行
多线程编程优点:
进程间不能共享内存,线程间非常容易
系统创建进程要为该进程重新分配系统资源,但创建线程代价很小,多线程来实现多任务并发比多进程效率高
Java内置了多线程功能支持,简化了多线程编程
多线程