- 1、本文档共89页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 线程和网络编程精要
第三章线程和网络编程;在操作系统中都会涉及处理机管理,即会引入一个进程的概念,它是动态的、相互隔离的、独立运行的、是资源分配单位及调度的基本单位
进程是由进程控制块、程序段、数据段三部分组成
线程是共存于一个进程中的多个并发执行流
Java 是第一个在语言本身中显式地包含线程的主流编程语言,而不是对底层操作系统的调用;进程与线程是有区别的。进程(process)本质上是一个并发执行的程序。因此,基于进程(process-based)的多任务处理的特点是允许你的计算机同时运行两个或更多的程序。基于线程(thread-based)的多任务处理环境中,线程是最小的执行单位,线程也称轻量级进程,共享进程的内存、文件句柄、和状态,单线程具有自己的堆栈、自己的程序计数器和自己的局部变量;多线程主要是为了节约CPU时间。多线程程序比多进程程序需要更少的管理费用。进程是重量级???任务,需要分配它们自己独立的地址空间。进程间通信是昂贵和受限的。进程间的转换也是很需要花费的,即进程切换需要花费大量处理机时间。而线程是轻量级的任务,共享相同的地址空间并且共同分享同一个进程。线程间通信是便宜的,线程间的切换也是低成本的;Java 运行系统在很多方面依赖于线程,所有的类库设计都考虑到多线程。实际上,Java 使用线程来使整个环境异步。这有利于通过防止CPU循环的浪费来减少无效部分
Java 是多线程处理模型。其优点在于取消了主循环/轮询机制。一个线程可以暂停而不影响程序的其他部分,即多个线程通过系统调度进行并发执行。在 Java 程序中出现线程阻塞,仅有一个线程暂停,其他线程继续运行;每个线程都有产生、运行、消亡的状态转换过程;创建状态(new Thread) :执行下列语句时,线程就处于创建状态:
Thread myThread = new MyThreadClass( ); 当一个线程处于创建状态时,它仅仅是一个空的线程对象,系统不为它分配资源,尚未执行(start()尚未调用)
可运行状态( Runnable ):当一个线程处于可运行状态时,系统为这个线程分配了它需的系统资源,安排其运行并调用线程运行方法,这样就使得该线程处于可运行( Runnable )状态。
如执行:Thread myThread = new MyThreadClass( );
myThread.start( );;不可运行状态(Not Runnable):不可运行状态也称为阻塞状态(Blocked)。因为某种原因(输入/输出、等待消息或其它阻塞情况),系统不能执行线程的状态。这时即使处理器空闲,也不能执行该线程。进入不可运行状态的原因有如下几条:
调用了sleep()方法;
调用了suspend()方法;
为等候一个条件变量,线程调用wait()方法;
输入输出流中发生线程阻塞。;死亡状态(Dead):线程的终止一般可通过两种方法实现:自然撤消(线程执行完)或是被停止(调用stop()方法)。不推荐通过调用stop()来终止线程的执行,而是让线程执行完;Java 的多线程系统建立于 Thread 类。Thread类封装了线程的执行。为创建一个新的线程,你的程序必须扩展 Thread 或实现 Runnable接口
Thread 类方法如下表:;Java线程模型;Java程序至少包含一个线程,即当 Java 程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程(main thread),因为它是程序开始时就执行的。主线程的重要性体现在两方面:它是产生其他子线程的线程;通常它必须最后完成执行,因为它执行各种关闭动作
;尽管主线程在程序启动时自动创建,但它可以由一个 Thread 对象控制。为此,你必须调用方法 currentThread()获得它的一个引用,currentThread()是 Thread 类的公有的静态成员。它的通常形式如下:
static Thread currentThread()
该方法返回一个调用它的线程的引用。一旦获得主线程的引用,就可以像控制其他线程那样控制主线程;public class Test
{
public static void main(String args[])
{
Thread ct= Thread.currentThread();
System.out.println(Current thread: + ct);
ct.setName(Test);
System.out.println(After name change: + ct);
try
{
Thread.sleep(1000);
您可能关注的文档
- 第3章 电容式传感器精要.ppt
- 人际关系心理学教程_论述题和答案要点.doc
- 第3章 电气控制线路的设计、安装与调试实训精要.ppt
- 人际关系技巧要点.ppt
- 人际关系心理学》要点.ppt
- 人行电子商业汇票系统业务需求书要点.doc
- 人音版音乐二上《我的家在日喀则》课件3要点.ppt
- 亿以内数的认识ppt要点.ppt
- 什么可以做主语、谓语、宾语要点.doc
- 第3章 类和对象精要.ppt
- 精编贵州省铜仁地区企业人力资源管理师之四级人力资源管理师考试大全附答案【B卷】.docx
- 精编贵州省黔南布依族苗族自治州企业人力资源管理师之一级人力资源管理师考试及参考答案(培优).docx
- 精编贵州省毕节地区企业人力资源管理师之四级人力资源管理师考试完整版及答案【精品】.docx
- 精编贵州省黔西南布依族苗族自治州企业人力资源管理师之一级人力资源管理师考试真题题库带答案(考试直接用.docx
- 精编贵州省黔东南苗族侗族自治州企业人力资源管理师之一级人力资源管理师考试完整版附参考答案(基础题).docx
- 精编贵州省铜仁地区企业人力资源管理师之一级人力资源管理师考试真题题库【轻巧夺冠】.docx
- 精编贵州省毕节地区企业人力资源管理师之一级人力资源管理师考试精品题库附答案解析.docx
- 街道办社会事务半年工作总结9篇.pdf
- 精编贵州省遵义市企业人力资源管理师之四级人力资源管理师考试题库带答案(完整版).docx
- 西厢记读后感精选7篇400字 .pdf
文档评论(0)