9-3学习总结
来源:互联网 发布:linux samba 配置 编辑:程序博客网 时间:2024/05/16 11:18
多线程
一、程序与进程
1.程序:一段静态的代码。
2.进程:程序的一次动态执行过程,它对应从代码加载、执行到执行完毕的一个完整过程。
3.进程也称任务,支持多个进程同时执行的OS就被称为多进程OS或多任务OS。
二、进程与线程
1.线程的状态
具有四种状态:
新生态:已分配内在,未高度
可执行态:start( )
阻塞态
停止态:stop( )
新建:
当一个Thread类或其子类的对象被创建后,进入这个状态。
这时,线程对象已被分配内存空间,其私有数据已被初始化,但该线程还未被调度,可用start()方法调度,或用stop()方法中止。
新生线程一旦被调度,就将切换到可执行状态。
2.可运行:
处于可执行环境中,随时可以被调度而执行。它可细分为两个子状态:
运行状态,已获得CPU,正在执行;
就绪状态,只等待处理器资源。
这两个子状态的过渡由执行调度器来控制。
3.阻塞:
由某种原因引起线程暂停执行的状态。
4.死亡:
线程执行完毕或另一线程调用stop()方法使其停止时,进入这种停止状态。
它表示线程已退出可运行状态,并且不再进入可运行状态。
线程优先级
Java把优先级划分为10级,用1至10的整数表示,数值越大,优先级越高。
在Thread类中定义了三个优先级常量:MIN_PRIORITY,MAX_PRIORITY和NORM_PRIORITY,其值分别为1, 10, 5。
在为线程分配优先级时,其值应该在1至10之间,否则将出错。
如果应用程序没有为线程分配优先级,则Java系统为其赋值为NORM_PRIORITY。
线程调度原则
调度就是分配CPU资源,确定线程的执行顺序。
Java采用抢占式调度方式,即高优先级线程具有剥夺低优先级线程执行的权力。
如果一个低优先线程正在执行,这时出现一个高优先级线程,那么低优先级线程就只能停止执行,放弃CPU,推回到等待队列中,等待下一轮执行,而让高优先级线程立即执行。
如果线程具有相同的优先级,则按"先来先服务"的原则调度。
- 9-3学习总结
- JAXP学习(3)学习总结
- 9patch学习总结
- linux学习总结9
- JAVA学习总结9
- Dataquest学习总结[9]
- Flex 3 学习总结
- vc++学习总结3
- 学习--UML总结3
- linux学习总结3
- Echart-3 学习总结
- JAVA学习总结3
- JAVA学习总结3
- 学习总结3
- RxJava学习总结3
- ndnsim2.3学习总结
- Log4j学习总结-3
- Dataquest学习总结[3]
- Oracle 11g 第一章知识点总结——数据库简介 简单查询
- x86 x64 IA64的关系和区别
- VC++在release下对return的优化
- POJ 2528 Mayor's posters(离散化+线段树)
- 中国水系Android第一个版本
- 9-3学习总结
- 【JSF小记】Managed Bean中控制页面弹出提示框
- 类的了解
- C#第一节上机课
- POJ 2505--A multiplication game
- http错误404-文件或目录未找到
- FaceBook thrift组件java组件分析
- Android invalidate
- hnoj beads