首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > JAVA > 复习资料 > 正文

计算机等级考试二级Java语言规范线程形式范例

来源:考试吧Exam8.com) 2010-4-30 14:42:18 考试吧:中国教育培训第一门户 模拟考场
考试吧提供了“计算机等级考试二级Java语言规范线程形式范例 ”,帮助考生备战2010计算机等级考试

  在一开始接触Java的时候我们没有很注意Java语言规范,其实这是不对的。下面我们就来看看开始执行Java语言规范程序后,至少会有一个线程开始操作,有操作的是被称为主线程的线程,主线程执行输入类的main()。当main()里的所有处理均结束后,则主线程也同时结束。

  当应用程序的规模大到一定程度,程序里的多线程会以每种形式存在。以下是几个常见的范例:

  1) GUI应用程序。

  2) 比较花费时间的I/O处理。

  3) 多个客户端。

  如欲启动线程时,有下列两种方法:

  1) 利用Thread类的子类的实例,启动线程。

  2) 利用Runnable接口的实现类的实例,启动线程。

  要注意的是,“Thread的实例”和“线程本身”是两个不同的部分。即使建立了Thread的实例,也还没有启动线程,而且就算线程已经结束,Thread实例也不会就这样消失。

  建立一个实现Runnable接口的类,将该类的实例传给Thread的构造函数,调用start()...,这就是利用Runnable接口来启动线程的方法。

  记住:无论哪种方式,启动新线程的方法永远是Thread类的start()。

  利用Thread类的sleep()可以暂停线程的执行。执行下面的语句时,即可让当前的线程(执行此语句的线程)暂时停止越1000ms。

  Thread.sleep(1000);

  当实例方法加上关键字synchronized声明之后,就可以只让一个线程操作某类实例的这类方法。“让一个线程操作”并不是说只能让某一个特定的线程操作而已,而是指一次只能让一个线程执行。这种方法称为synchronized方法(同步方法)。

  synchronized实例方法是使用this锁定去做线程的共享互斥。synchronized类方法是使用该类的类对象的锁定去做线程的共享互斥。

  Java语言规范线程的协调(这三种方法执行的前提是执行线程手中有obj的锁):

  1) obj.wait()是把现在的线程放到obj的wait set;

  2) obj.notify()是从obj的wait set里唤醒一个线程;

  3) obj.notifyAll()是唤醒所有在obj的wait set里的线程。

  被唤醒的线程只是处于等锁状态(但已经不再wait set中了),当时的obj的锁还掌握在执行notify()或notifyAll()的线程手上。当唤醒的线程得到锁之后,将从wait()之后继续执行。Introduction

  Java语言规范多线程程序的评量标准

  安全性--不损坏对象。

  生存性--进行必要的处理。(liveness)

  复用性--可再利用类。

  性 能--能快速、大量进行处理。

  Single Threaded Execution - 能通过这座桥的,只有一个人

  Single Threaded Execution是指“以一个线程执行”的意思。就象细独木桥只能允许一个人通过一样,这个模式用来限制只让一个线程运行。

  在Single Threaded Execution Pattern中,我们将unsafeMethod加以防卫,限制同时只能有一个线程可以调用它(加上synchronized)。这个必须让单线程执行的程序范围,我们称为“临界区”(critical section)。

  使用Single Threaded Execution Pattern时,可能会有发生死锁(deadlock)的危险。

  当SharedResource的字段开放给子类访问时,可能会因为子类写出unsafeMethod而导致丧失安全性。

  synchronized方法和synchronized块,无论碰到return或是异常,都会确实解除锁定。

  结论,Java语言规范中:

  1) 基本类型、引用类型的指定、引用是原子的操作。

  2) 但是long和double的指定、引用是可以分割的。

  3) 要在线程间共享long或double的字段时,必须在synchronized中操作,或是声明成volatile。

  相关推荐:计算机等级考试二级JAVA考前密卷
       2010年计算机等级考试二级公共基础知识教程
       计算机等考Java程序:多进程运行模式的实例分析
文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。