转载地址:http://www.blogjava.net/jobs/archive/2006/01/09/56179.html
有朋友问过我,怎样学习多线程编程,我总结了一下,列了一下知识点:
1、synchronized
2、Runnable、Thread、Thread.sleep、Thread.yield、Thread.join
3、wait、notify、notifyAll(注意其中锁的获得和释放)
4、Mutex、Semaphore
5、BlockingQueue (十分有用,必须掌握)
6、ThreadPool
7、ExecutorService
8、Future (十分重要,必须掌握)
9、ReadWriteLock
10、Lock、condition。这是很多线程库都包含的内容,概念和synchronized、object.wait、object.notify那套咚咚类似,不过是通过库的方式展现,更加灵活。
、死锁、哲学家就餐问题
12、TSL汇编指令、JDK 1.5中的compareAndSet(java.uti.concurrent.atomic)、Windows API中的InterLock
13、工作线程+请求队列的应用
14、用户线程、内核线程,fork时用户线程问题 (很多Unix和早期的Linux不支持内核线程)
15、Windows Thread API,特色API:WaitForMultiObject
相关的书籍有:
《JAVA多线程设计模式》 结城浩 中国铁道出版社 (这本书讲得很清楚形象,十分适合初学者阅读)
JAVA并发编程—设计原则与模式(第二版) Doug Lea 中国电力出版社 (不可以不看,同时要配合阅读util.concurrent包的源码或者JDK 1.5的源码)
《JAVA线程编程》 Paul Hyde 人民邮电出版社 (我觉得这本书也不错)
《POSIX多线程程序设计》 David R.Butenhof 中国电力出版社
《WINDOWS核心编程》 Jeffrey Richter 机械工业出版社
《UNIX系统编程》 Kay A.Robbins, Steve Robbins 机械工业出版社
《现代操作系统》 Andrew S.Tanenbaum 机械工业出版社
《UNIX 网络编程(第二版)第2卷:进程间通信》W.Richard Stevens 北京科海电子出版社
《多核程序设计技术》 OpenMP技术的一些细节 任务分解、数据分解以及数据流分解
分享到:
相关推荐
以上内容概括了04747 Java程序设计(一)自考大纲的主要知识点,这些知识点覆盖了Java语言的基础语法、面向对象编程、基本数据类型及运算、控制流语句、数组与字符串操作以及图形界面设计等核心领域。掌握这些内容有助...
下面将详细讨论Java程序设计中的关键知识点。 1. **面向对象编程(OOP)**:Java是一种面向对象的语言,其核心理念是通过类和对象来组织代码。理解类的定义、对象的创建以及封装、继承和多态等概念是Java编程的基础...
《C#程序设计教程-郑...通过《C#程序设计教程-郑阿奇》中的程序代码,读者可以亲手实践这些知识点,从而加深对C#的理解,提升编程技能。每个章节的示例代码都是精心设计,旨在帮助学习者逐步建立起扎实的C#编程基础。
Oracle数据库在处理大数据量导入时,常常需要高效且可靠的方法,以确保数据的快速加载和系统的稳定运行。这篇博文“Oracle大数据量导入...理解并掌握这些知识点,对于提升数据库管理效率和保证数据完整性具有重要意义。
在Java并发编程中,主要涉及以下几个关键知识点: 1. **线程与进程**:线程是程序执行的最小单元,一个进程中可以有多个线程同时执行。理解线程的概念和生命周期对于并发编程至关重要。 2. **线程安全**:当多个...
通过对这些知识点的学习和实践,你将能够掌握如何在实际项目中运用多线程技术来构建高并发、高可靠、高性能的系统。这份压缩包资源应该提供了丰富的实例、代码示例、讲解文档,帮助你深入理解和应用这些概念。记得...
Python程序设计是一门涵盖...通过深入学习这些知识点,无论是教师还是学生,都能掌握Python程序设计的基本技能,并能够应对各种实际编程需求。在实践中不断探索和应用,将使你对Python有更深入的理解,并提升编程能力。
在阅读《Lua程序设计》时,你可以期待学习以下核心知识点: 1. **基础语法**:包括变量、数据类型(如nil、boolean、number、string、table)、控制结构(如if语句、循环)、函数定义与调用。 2. **表与元表**:...
在Python程序设计中,有几个关键的知识点是必不可少的: 1. **Python基础语法**:这是所有Python学习的起点,包括变量定义、数据类型(如整型、浮点型、字符串、布尔型、列表、元组、字典和集合)、操作符(算术、...
通过深入研究《Erlang程序设计(第二版)》的随书源码,你可以逐步掌握这些关键知识点,并提升在实际项目中应用Erlang的能力。这个源码包“code”很可能是按照章节或主题组织的,每个文件或目录代表一个特定的概念或...
学习C语言,你需要掌握以下关键知识点: 1. **基本语法**:了解变量、常量、数据类型、运算符、控制结构(如if-else、switch-case、for、while、do-while循环)。 2. **函数**:理解函数的定义、调用,以及如何...
本案例中的"mysql数据库程序设计"是一个关于小型教务管理系统的设计项目,它利用MySQL数据库作为数据存储和管理的核心。MySQL是一种广泛使用的开源关系型数据库管理系统,以其高效、稳定和易用性著称,尤其适合中...
在Java程序设计中,有几个关键的知识点是必不可少的: 1. **基础语法**:包括变量、数据类型(如整型、浮点型、字符型和布尔型)、运算符(算术、比较、逻辑和位运算符)、流程控制(if语句、switch语句、循环结构...
下面将详细讨论Windows程序设计中的关键知识点,以及如何利用这些源代码进行学习。 1. **Win32 API**:Windows操作系统提供了丰富的API,允许开发者用C或C++编写原生应用程序。这些API涵盖了窗口管理、图形绘制、...
总的来说,《Go语言程序设计》是一本全面介绍Go语言的书籍,涵盖了从基础到高级的所有关键知识点,适合所有想进入Go语言领域的程序员,同时也为已经在Go语言中工作的开发者提供了宝贵的参考。通过阅读本书,读者将...
本资源“java语言程序设计1-10章课后答案(代码)”提供了《Java语言程序设计(基础篇 原书第10版)》前10章的全部课后习题解决方案,这将对学习Java编程的初学者来说极具价值。 1. **基础语法**: 第1-2章通常涵盖...
这个课程内容全面,涵盖了从基础概念到高级特性的诸多知识点,对于想要深入理解SQL Server的人员来说极具价值。 首先,我们要了解SQL Server的基本架构。SQL Server由多个组件构成,包括数据库引擎、SQL Server ...
在"Python程序设计的源代码"这个主题中,我们可以深入探讨Python编程的各种知识点,这对于有基础的学习者来说,是极好的实践和提升技能的机会。 1. **变量与数据类型**:Python支持多种数据类型,包括整型(int)、...
通过学习和掌握这些MFC知识点,开发者可以高效地构建功能丰富的Windows应用程序,同时利用C++的面向对象特性提高代码的组织性和可维护性。这份"任哲版"的MFC教程和源代码将为学习者提供实践和理解这些概念的宝贵材料...