java多线程
来源:互联网 发布:maven 打包 java 工程 编辑:程序博客网 时间:2024/06/10 23:47
.1. java多线程基本知识
.1.1. 进程介绍
进程是对正在运行程序的抽象,是程序的一次执行过程。进程是作为资源申请和调度的存在。
进程的状态分为新建态、就绪态、运行态、阻塞态、终止态。
进程由PCB(进程控制块)、栈(保存过程调用和互相传送参数的踪迹)、程序、数据集合。
.1.2. 线程介绍
线程是进程中执行运算的最小单位。一个进程可以有多个线程,至少有一个线程。资源分配给进程,同一进程的所有线程共享该进程的所有资源。CPU分配给线程。
.1.3. 信号量及P、V操作原语
P(S) : S为信号量。S--, 如果S>=0, 进程继续执行,如果S<0,进程阻塞。
V(S) : S为信号量。S++, 如果S>0, 进程继续执行,如果S<=0,唤醒等待进程队列中的第一个进程,该进程继续执行。
用信号量实现进程互斥:
S=1;
进程Pa 进程Pb
P(S) P(S)
(业务代码) (业务代码))
V(S) V(S)
分析:当进程Pa运行时,进行P操作,S=0,这时假设Pb抢占运行权,Pb进行P操作,S=-1,Pb阻塞。Pa重新运行,(业务代码)后进行V操作,S=0,唤醒Pb。
Pa进行P操作,S=-1,Pa阻塞。或者是Pb抢占运行权,(业务代码)后进行V操作。S=1。(反过来结果也是一样)
使用P、V 操作时,信号量一般初值为1,PV必须成对出现。
用信号量实现进程简单同步:
信号量 S1=1;(0表示不空,1表示空)
信号量 S2=0;(0表示不满,1表示满)
- java多线程
- 【Java多线程】多线程死锁
- Java 多线程
- java 多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA 多线程
- Java多线程
- java多线程
- JAVA 多线程
- Java 多线程
- Java 多线程
- java多线程
- Java 多线程
- Java多线程
- bzoj3196 Tyvj 1730 二逼平衡树
- Android中MVP模式的实例
- vue2+webpack2 初始化项目
- SpringMVC学习之JSTL条件行为和遍历行为
- 使用UrhoSharp
- java多线程
- Hadoop的理论基础来自谷歌的三大论文,以下是三大论文的中文版
- Vue.js进行查询操作
- 使用YCSB测试MongoDB的微分片性能
- 神经网络入门(三)
- iOS获取网络时间,网络获取时间,也就是现实中的时间
- 项目登陆功能的总体架设
- Python之创建tuple
- QT中的类型转换