




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java并行程序设计教材建设和教学探索 张杨,张冬雯,杨奎河 (河北科技大学信息科学与工程学院,河北石家庄050000) 摘要:针对现阶段并行程序设计教材相对匮乏的问题,在分析已有并行程序设计教材发展现状的基础上,对面向主流编程语言Java的并行程序设计教材建设进行比较,说明Java并行程序设计教材的基本架构、相关知识点以及例题演示方法,介绍该教材在个性化实训教育和选修课中的教学效果。 关键词:并行程序设计;多线程编程;教材建设;java教学 基金项目:xx年度全国高等学校计算机教材建设项目和河北科技大学理工学院教育教学研究项目“多核时代并行编程教学实践及教材建设”(xxY06)。 第一作者简介:张杨,男,讲师,研究方向为并行程序设计和优化、软件重构,uzhangyangfoxmail.。 0引言 随着多核处理器的普及以及众核处理器设计技术的不断发展,并行程序设计不会只局限在拥有高性能工作站和服务器的实验室和工业界中,普通用户也可以使用并行编程技术来设计高性能程序,工业界和学术界一致认为,并行程序设计将成为未来软件开发技术的主流。并行程序设计继承了传统程序设计中的理论和方法,但对程序设计方法又提出了许多新的要求,突出表现在并行思维能力、并行算法、并行数据分解、任务分解等方面,目前很多程序设计人员对传统的串行程序设计较为熟悉,但对并行程序设计的相关方法还有待深入学习。 并行程序设计技术的发展给高校的计算机教学带来了新的挑战,如何培养学生由传统的串行程序设计向并行程序设计转变是摆在诸多高校面前的一个难题。在过去的几年中,Intel公司联合国内高校开展了多核相关的课程,如清华大学郑纬民教授、浙江大学陈天洲教授、武汉大学田茂教授等诸多高校的学者都在多核课程建设方面进行了有益探索,这些探索无疑促进了并行程序设计在高校的普及。 Java是目前最流行的编程语言之一,众多高校都开设了针对Java编程语言的教学课程,但大多数课程是关于Java基本知识的教学,对Java并行程序设计方面的教学探索主要集中在Java线程的初步讲解,详细深入的Java并行程序设计的教学还有待进一步探索。 1现状分析 在并行程序设计方面,国外有很多经典的教材。DougLea是JDK并发库的主要设计者,由他主编的ConcurrentProgramminginJava1是Java并行程序设计的权威教材,该书主要介绍了Java内存模型、可移植的(Portable)并行编程、并行工具类等,从内容上来讲,该书更侧重于并行程序设计的原则和并行模式的讲解,具有实用价值和较高的理论深度。 Java7ConcurrencyCookbook2介绍了JDK7中的线程、线程同步、工具类等内容,且紧跟JDK的发展,介绍了适合多核时代的编程框架Fork/Join。该书大量使用实例,对于初学者是一本理想的教材,但它侧重于实例说明,对于JDK并发类的原理说明不足。 ProgrammingConcurrencyontheJVM3是在Java虚拟机上进行并发编程的一本教材,该书侧重于讲解线程同步的控制,对锁和软件事务性内存进行了详细的说明。 在面向多核平台的并行编程教材方面,MulticoreApplicationProgramming4对硬件和软件的相关知识进行了讲解,该书并没有局限于某一主流的编程语言,对如何识别并行的机会以及如何使用自动化并行技术等内容进行了深入的讲解。 这些国外的教材从内容上来说有些侧重于最新的研究进展,有些侧重于技术的原理性说明,还有一些侧重于实际操作,虽然知识性强,但不适合作为国内学生的教材,这主要因为其在语言方面和编写风格方面不符合国内学生的阅读习惯,且在教学方面没有考虑中国的教学特点。在国内,虽然目前有一些教材(如多核程序设计5和多核架构和编程技术6)是关于多核平台上并行编程的,但大部分教材(如Java多线程设计模式7)都是对国外教材的译著,并行程序设计相关的国内自编教材仍然匮乏,因此,亟须编写一部适合我国高校教与学特点的并行程序设计教材。 2教材建设 为了帮助更多的人了解和学习并行程序设计的思想、方法和技术,作者历时一年半编写了Java并行程序设计教材,该教材已于xx年3月由清华大学出版社出版发行,它是作者在长期教学和科研实践基础上编写而成的。该教材以Java程序设计语言为基础,对并行程序设计的相关概念、基本原理和方法进行了介绍,其总体架构如图1所示。总体上来说,本书分为五大部分,分别为基本知识、线程相关操作、并行框架、并行辅助以及性能和测试,其中线程相关操作、并行框架和并行辅助为本书重点阐述部分。图中虚线框为本教材的图书章节安排,具体内容涉及并行程序设计基本知识、线程定义、线程同步、线程障栅、线程间通信、执行器、Fork/Join框架、自定义的并发类等内容,分别介绍如下: (1)基本知识:该章介绍并行程序设计的相关概念和相关术语,如线程安全、数据竞争、加速比等;此外,还对Java并行方面的特性、并行程序设计方法和并发程序的评判标准进行介绍。 (2)线程:该章讲解如何创建线程、线程的状态和属性以及管理线程的方法,不仅对有返回值的Callable线程创建进行讲解,而且对没有返回值的Runnable线程创建也进行讲解。 (3)线程同步:该章对锁和原子性操作进行讲解,并通过例子对死锁和活锁问题进行阐述。 (4)线程间通信:该章介绍线程间通信的操作,以生产者、消费者问题为例,对线程间通信机制进行深入讲解。 (5)同步障栅:介绍几种典型的线程同步障栅机制,如倒计时门闩、信号量、同步队列等内容。 (6)线程执行器:对Executor执行器进行介绍,对几种不同的执行器进行讲解。 (7)Fork/Join框架:对JDK1.7版本推出的Fork/Join框架的原理和应用进行介绍。 (8)自定义并发类:对如何定义用户自己需要的线程工厂、线程池、自定义锁等内容进行讲解。 (9)线程安全的集合:对Java中线程安全的集合操作进行介绍,具体包括线程安全的双端队列、哈希表、跳表等。 (10)多线程程序的性能和测试:该章简单地对多线程程序的性能和测试进行介绍。 (11)面向方面编程在并行程序设计中的应用:对如何应用面向方面编程技术和注释接口构造标记化的并行程序进行讲解。 在该教材中,所有知识点在讲解基本知识的同时都通过实例加以演示,例题演示方法如图2所示。首先,提出问题,然后对问题的解决方法进行分析,接着给出程序的代码和执行结果,最后对结果进行分析,并进行相关讨论。通过这种方法,力求让读者透彻理解各个知识点。 虽然本书介绍的并行程序设计知识只是强大的Java世界中之冰山一角,但也覆盖了JDK并发库中绝大多数的工具类和接口的使用方法。需要特别说明的是,Java并发库只是提供了一个工具,并行程序设计过程中最重要的是并行思想和并行编程思维习惯的培养。作者希望本书在介绍Java并行程序设计相关知识的同时,可以培养学习者并行编程的思想和思维习惯,引领其进入到并行程序的世界中,为高性能的程序设计起到抛砖引玉的作用。该书适合普通高校、实践和工程类院校学生在学习高性能程序设计时选用,是高等院校学生和IT领域在职人员学习Java高级编程技术的理想教材和工具书,也可以作为那些需要高性能计算技术的人员的自修参考用书。 与国内外众多的Java经典教材相比较,Java并行程序设计教材的特点主要体现在以下几个方面:该教材结合并行程序设计的相关概念,详细讲解Java语言中多线程的相关机制和方法;每一个知识点都通过例题加以演示,可以帮助学生更好地掌握相关知识;各章内容精心安排,更符合我国学生的阅读习惯。 3教学探索及其效果 3.1在个性化实训教育中的教学探索 个性化教育实训课程是为培养学生灵活运用所掌握的技术和工具解决实际工程问题的能力。该实训课程是为提高学生项目实践能力、开拓学生创新能力而开设的实践性环节课程,在学生已具备了Java程序设计基本知识的基础上,进一步培养学生应用Java语言进行并行程序设计的能力。本实训课程的目标是使学生掌握基本的并行程序设计能力,了解并行程序设计的基本思想,分析设计实际项目、编写、调试和运行实用、规范、可读性好的应用程序。 在xx年的个性化教育中共30人参加了实训,由学生根据自己的兴趣进行自主选题,我们将这些学生分为5组,每组同学选定1个题目,相互合作完成实训。分组题目见表1,每个题目都考察了Java并行程序设计教材中的相关内容。由于在该次实训课程开设之初,Java并行程序设计教材并没有出版发行,我们通过ppt的方式向学生讲授相关内容,让学生了解多线程的相关知识。在成绩评定上,文献8对并行程序设计课程的成绩评定方法进行了研究,我们并没有采用量化的指标,由于这几个程序的代码行数都在100行以内,故采用代码书写和考察运行结果的方式进行评判。 3.2在选修课程中的教学探索 Java并行程序设计课程已经作为专业必修课程列入河北科技大学物联网专业学生的课程教学大纲,为使学生更好地理解Java并行程序设计,该课程被安排在大三下学期或大四上学期开设。由于该专业学生招生较晚,本课程在目前阶段仅作为选修课面向具有Java基本知识的计算机相关专业开设,课程安排32学时。在实际教学中,按照教材内容,学时也可以安排在3248学时之间,各个章节的学时安排和教学任务见表2。学生在课程学习中对该教材的知识掌握较快,能够理解教材中的相关知识点,通过学习相关例题并进行仿写,可以快速有效地书写一些并行程序。教学实践表明,该教材比较适合具有一定Java基础的学生进行Java高级程序设计的学习。 4结语 多核技术的兴起和不断发展给计算机软件提出了更高的要求,也给高校的教与学带来了新的挑战。Java并行程序设计教材为并行程序设计的教学方法和教学模式探索迈出了重要一步。作者会在今后的教学实践中继续探索和改进,并在教学过程中对教材的不足之处加以完善,以期完善教材,取得更好的教学效果。 参考文献: 1LeaD.ConcurrentprogramminginjavaM.Secondedition.NewJersey:AddisonWesley,1999:1-313. 2GonzalezJF.Java7concurrencycookbookM.Birmingham:PacktPublishing,xx:1-339. 3SubramaniamV.ProgrammingconcurrencyontheJVMM.Frisco:ThePragmaticBookshelf,xx:1-261. 4GoveD.MulticoreapplicationprogrammingM.NewJersey:Addiso
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人业绩合同样本
- 产品购货合同样本
- 关于教师聘用合同样本
- 买卖旧设备合同样本
- 任务合同样本
- 个人厢房出售合同标准文本
- 公户账务往来合同样本
- 牌照出租合同范本
- 供水设备合同样本
- 调酒师必考知识点及试题及答案
- 2024年度部队食堂蔬菜粮油供应合同规范范本3篇
- (T8联考)2025届高三部分重点中学12月第一次联考评物理试卷(含答案详解)
- 【MOOC】化工安全(下)-华东理工大学 中国大学慕课MOOC答案
- 2024年10月广东高等教育自学考试5743基础营养学试题及答案
- 《连续性肾替代治疗容量评估与管理专家共识》解读课件
- 第4课《我们的公共生活》第1课时(教学设计)-部编版道德与法治五年级下册
- 宠物店宠物活动策划合同
- 盾构施工关键技术知识考试题库及答案
- 《2024年 大学计算机基础考试系统的分析与设计》范文
- 广东省珠海市香洲区2023-2024学年七年级下学期期末历史试题(解析版)
- 鸢飞鱼跃:〈四书〉经典导读智慧树知到答案2024年四川大学
评论
0/150
提交评论