| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> JAVA并发编程 - 概念介绍 -> 正文阅读 |
|
[Java知识库]JAVA并发编程 - 概念介绍 |
进程一个在内存中运行的应用程序, 每个进程有自己独立的内存空间, 可以包含多个线程 线程进程中的一个执行任务, 多个线程共享进程的内存空间 进程与线程的区别1. 线程具有许多进程的特征, 称线程为轻型进程, 成进程为重型进程 2. 进程是操作系统资源分配的基本单位, 线程是CPU调度和执行的基本单位 3. 进程切换的资源开销大, 线程间的切换资源开销小 4. 进程与进程之间的资源是独立的, 而同一个进程下的所有线程共享这个线程的资源 下文切换????????一个CPU在任意时刻只能提供给一个线程使用, 为了提高CPU的利用率, 采取线程按时间片轮转的形式使用CPU. 当一个线程的时间片用完还没有完成任务, 就会重新进入就绪状态让给其他的线程使用. 任务从保存到再次加载的过程叫做一次上下文切换 用户线程运行在前台, 执行具体的任务 守护线程运行在后台, 为前台线程提供服务. 当用户线程结束时, 守护线程也会结束 死锁????????两个或多个进程或线程在执行过程中, 竞争资源或彼此间的通信造成阻塞, 若无外力作用, 将永远无法推进. 死锁的四个必要条件互斥条件: 线程对所分配到的资源具有排它性, 一个资源只能被一个线程所占用, 直到该资源被线程释放 请求与保持条件: 线程因请求 被占用资源 发生阻塞, 对以获得的资源保持不放 不剥夺条件: 线程在资源使用完之前, 不能被其他线程剥夺 循环等待条件: 发生死锁时, 所有线程必定形成一个环路, 永久死锁 创建线程的四种方式1. 继承Thread类 2. 实现Runnable接口 3. 使用Callable和Future 4. 使用线程池. 如Executor框架 Runnable和Callable区别1. Runnable接口的run方法无返回值, Callable接口的call方法有返回值 2. Runnable接口的run方法只能抛出异常, Callable接口的call方法可以处理异常(Callable用于产生结果,Future 用于获取结果) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:50:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |