Concurrent Programming in Java

所在平台: CourseraArchive

课程类别: 其他类别

大学或机构: CourseraNew

课程主页: https://www.coursera.org/archive/concurrent-programming-in-java

课程评论:没有评论

第一个写评论        关注课程

课程简介

Rice University

课程大纲

In this module, we will learn about threads and locks, which have served as primitive building blocks for concurrent programming for over five decades. All computing platforms today include some form of support for threads and locks, and make them available for use by developers in a wide range of programming languages. We will learn how threads can be created, joined, and synchronized using structured (e.g., synchronized statements/methods) and unstructured (e.g., java.util.concurrent libraries) locks in Java. We will also learn about new classes of bugs that can arise when concurrent programs need to access shared resources. These bugs are referred to as violations of liveness/progress guarantees, and include deadlock, livelock, and starvation. We will conclude this module by studying different solutions to the classical "Dining Philosophers" problem, and use these solutions to illustrate instances of deadlock, livelock and starvation.

课程评论(0条)

课程详情

This course teaches learners (industry professionals and students) the fundamental concepts of concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. By the end of this course, you will learn how to use basic concurrency constructs in Java such as threads, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, livelock, starvation, linearizability). Why take this course? • It is important for you to be aware of the theoretical foundations of concurrency to avoid common but subtle programming errors. • Java 8 has modernized many of the concurrency constructs since the early days of threads and locks. • During the course, you will have online access to the instructor and mentors to get individualized answers to your questions posted on the forums. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. The desired learning outcomes of this course are as follows: • Concurrency theory: progress guarantees, deadlock, livelock, starvation, linearizability • Use of threads and structured/unstructured locks in Java • Atomic variables and isolation • Optimistic concurrency and concurrent collections in Java (e.g., concurrent queues, concurrent hashmaps) • Actor model in Java Mastery of these concepts will enable you to immediately apply them in the context of concurrent Java programs, and will also help you master other concurrent programming system that you may encounter in the future (e.g., POSIX threads, .NET threads).

Java并行编程:本课程向学习者(行业专业人士和学生)讲授Java 8上下文中并行编程的基本概念。并行编程使开发人员能够有效,正确地调解并行程序中共享资源的使用。在本课程结束时,您将学习如何在Java中使用基本并发构造,例如线程,锁,关键部分,原子变量,隔离,参与者,乐观并发和并发集合,以及它们的理论基础(例如进度)保证,死锁,活动锁,饥饿,线性化)。 为什么要上这门课? •重要的是要了解并发的理论基础,以避免常见但细微的编程错误。 •从线程和锁的早期开始,Java 8就对许多并发结构进行了现代化。 •在课程期间,您将可以在线访问讲师和导师,以获取针对您在论坛上发布的问题的个性化答案。 •课程的四个模块中的每个模块均包含一个分配的小型项目,该课程将为您提供必要的动手经验,以便在课程结束后自行使用在课程中学习到的概念。 该课程的预期学习成果如下: •并发理论:进度保证,死锁,活动锁,饥饿,线性化 •在Java中使用线程和结构化/非结构化锁 •原子变量和隔离 •Java中的乐观并发和并发集合(例如,并发队列,并发哈希图) •Java中的Actor模型 掌握这些概念将使您能够立即将它们应用在并发Java程序的上下文中,还将帮助您掌握将来可能会遇到的其他并发编程系统(例如POSIX线程,.NET线程)。

课程标签

0人关注该课程

主题相关的课程