多线程

Posted zawjdbb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程相关的知识,希望对你有一定的参考价值。

程序进入内存时,即变成一个进程,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位

进程三个特征:

  独立性:进程是系统中独立存在的实体,拥有自己独立的资源,有自己私有的地址空间,没有经过进程本身允许的情况下,一个用户进程不能直接访问其他进程的地址空间

  动态性:进程与程序的区别在于,程序是静态的指令集合,而进程是正在系统中活动的指令集合,进程中加入的时间概念,进程有自己的生命周期和各种不同的状态,程序不具备这些

  并发性:多个进程可以在单个处理器上并发执行,多个进程间不会互相影响

并发和并行:

  并行是同一时刻,多个指令在多个处理器上同时执行

  并发指在同一时刻只有一条指令执行,但多个进程指令被快速轮换,宏观上被同时执行

并发方式:

  共用式的多任务操作策略

  抢占式多任务操作策略:效率更高更常用

多线程:

  扩展了多进程,使得同一个进程可以同时并发处理多个任务。

  线程thread也被称为轻量级进程,是进程的执行单元,类似进程在操作系统中的地位,线程在程序中是独立的,并发的执行流,进程初始化后,主线程就被创立。

  线程是进程的组成部分,一个进程有多个线程,一个线程必须有一个父进程,线程可以有自己的堆栈,自己的程序计数器和局部变量,但不能拥有系统资源,与父进程的其他线程共享该进程的全部资源。

  线程是独立运行的,不知道进程中其他线程的存在,执行时抢占式的

  一个线程可以创建和撤销另一个线程,同一个进程中多个线程可以并发执行

多线程编程优点:

  进程间不能共享内存,线程间非常容易

  系统创建进程要为该进程重新分配系统资源,但创建线程代价很小,多线程来实现多任务并发比多进程效率高

  Java内置了多线程功能支持,简化了多线程编程

以上是关于多线程的主要内容,如果未能解决你的问题,请参考以下文章

什么是多线程,多进程?

多线程和多进程模式有啥区别

多线程Java多线程学习笔记 | 多线程基础知识

java中啥叫做线程?啥叫多线程?多线程的特点是啥

c++ 多线程与c多线程有啥区别?

IOS多线程安全(线程锁)