7.2 Java线程模型
来源:互联网 发布:火箭军 知乎 编辑:程序博客网 时间:2024/04/29 12:59
一. 单线程的机制: 遵循主循环/轮询机制.
- 单线程控制无线循环
- 轮讯一个事件序列来决定下一步做什么
- 一旦轮询装置返回信号,执行事件处理程序
- 直到事件处理程序完成 (如果此时事件处理程序被阻止,意味着一个线程因为等待资源时阻塞(block,挂起执行),整个程序停止运行
Note: 事件序列:
二. 多线程的机制:取消主循环/轮询机制.
一个线程可以暂停而不影响程序的其他部分。例如,当一个线程从网络读取数据或等待用户输入时产生的空闲时间可以被利用到其他地方。 多线程允许循环中在每一帧间隙中沉睡一秒而不暂停整个系统。简单说:在Java程序中出现线程阻塞,仅有一个线程暂停,其他线程继续运行。
Note: 帧是网络通信层中数据传输的最小单位。
三. 线程的状态
- 正在运行running
- 运行的程序可以被挂起(suspend)
- 临时中断
- 挂起的程序可以被恢复Resume
- 等待资源时候被堵塞block
四. 线程优先级
线程的优先级是用来决定何时从一个运行的线程切换到另一个。这叫“上下文转换”(context switch)。转换规则:
五. 同步性
因为多线程在你的程序中引入了一个异步行为,所以在你需要的时候必须有加强同步性的方法.
举例来说,如果你希望两个线程相互通信并共享一个复杂的数据结构,例如链表序列,你需要某些方法来确保它们没有相互冲突。也就是说,你必须防止一个线程写入数据而另一个线程正在读取链表中的数据。这个方法称为管程(monitor)
六. 异步性
多线程促成了异步性特征,异步的意思是在不同的时间点上,执行不同的任务
七. 消息传递
Java的消息传递系统允许一个线程进入一个对象的一个同步方法,然后在那里等待,直到其他线程明确通知它出来
八. Thread 类和Runnable接口
Thread类封装了线程的执行,为创建一个新的线程,你的程序必须扩展Thread 或实现Runnable接口
Thread类定义了好几种方法来帮助管理线程。本章用到的方法如表所示:
方法
意义
getName
获得线程名称
getPriority
获得线程优先级
jsAlive
判定线程是否仍在运行
join
等待一个线程终止
run
线程的入口点.
sleep
在一段时间内挂起线程
start
通过调用运行方法来启动线程
From <http://www.weixueyuan.net/view/6025.html>
- 7.2 Java线程模型
- java入门教程-7.2Java线程模型
- java线程模型 线程池
- java线程模型
- Java 线程模型
- java线程模型
- java 的线程模型
- Java线程模型缺陷
- Java线程模型总结
- Java线程模型
- java线程 状态模型
- Java线程模型
- Java的线程模型
- Java的线程模型
- java线程内存模型
- 【多线程】Java线程模型
- java线程模型
- JAVA线程模型
- Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) D. Minimization(dp)
- MFC中CListCtrl单击表头排序+表格大小随窗体大小改变等功能实现
- Servlet之间的转跳之Forward(转向)
- 7.1 Thread概念
- Atlassian Bamboo Xcode 指定编译目录
- 7.2 Java线程模型
- 杭电1861(坑)
- Hadoop大数据学习线路图-单篇
- poj_2406 Power Strings(KMP求周期子串)
- 1、Metal概述
- beaglebone black 盘符出现!
- poj Find them ,Catch them(偏移量应用)
- 7.4Java创建线程(Runnable接口和Thread类)
- 【51单片机】1602 CGRAM、CGROM及DDRAM的作用