|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/pthreads/
课程评论:没有评论
**Coursera 课程:Pthreads 与 C 语言并发编程** 本课程主要关注如何使用 C 语言和 Pthreads 库来构建多线程(multithread)程序。课程将深入探讨线程的创建、同步和通信机制,展示它们如何在多核处理器上实现真正的并行,或通过操作系统调度实现伪并行。 **核心内容:** * **并发编程基础:** 介绍并发编程的基本概念,以及多线程编程的特殊性。 * **Pthreads API 详解:** 重点讲解 POSIX Threads (Pthreads) 的标准 API,并通过大量可执行的 C 语言示例代码进行演示。 * **线程管理:** 涵盖线程的创建、终止、等待等基本操作。 * **同步机制:** 详述互斥锁(mutual exclusion)、条件变量(condition variables)、信号量(semaphores)以及更高级的同步模式,如屏障(barrier)和读写锁(reader-writer locks)。 * **并发问题与解决方案:** 深入分析死锁(deadlocks)、竞态条件(race conditions)、原子性(atomicity)等并发编程中常见的问题,并提供相应的解决策略。 * **实战项目:** 通过一个小型项目来综合运用课程中所学的概念和 Pthreads API。 **技术栈与工具:** * **编程语言:** C 语言 * **核心库:** Pthreads * **操作系统:** Linux (Windows 上的 WSL2 也支持) * **开发工具:** 文本编辑器(如 gedit)、GCC 编译器。也支持 Visual Studio Code、Eclipse 等 IDE。 **课程特色:** * **强调实践:** 所有概念都通过实际可运行的代码示例进行阐述。 * **代码可下载:** 课程提供的所有示例代码均可供下载。 * **标准驱动:** 基于 IEEE 制定的 POSIX Threads 标准,该标准在嵌入式系统和物联网开发中应用广泛。 本课程适合希望掌握 C 语言多线程编程的开发者,特别是那些对构建高性能、高 TTP 的应用程序感兴趣的学员。
Este curso trata da criação de programas com múltiplas threads (multithread, multitarefa). As threads podem executar em paralelismo real, no caso de processadores multicore, ou pseudo-paralelismo através do escalonamento provido pelo sistema operacional. As threads trocam dados através de variáveis compartilhadas e usam mecanismos de sincronização para coordenar suas execuções.Embora os conceitos apresentados no curso sejam válidos para diferentes linguagens de programação e sistemas operacionais, vamos utilizar especificamente a linguagem de programação C e a biblioteca Pthreads disponível no Linux para os exemplos.Ao longo de todo o curso a ênfase está na programação. As abstrações e primitivas presentes nas Pthreads são descritas através de códigos exemplo funcionais, ou seja, que compilam e executam. As aulas são apresentadas a partir de código exemplo completo, o qual fica disponível para download como um recurso do curso. O padrão POSIX Threads (Pthreads) foi criado pela IEEE para padronizar a utilização de threads em diversos sistemas. Atualmente existem implementações da API Pthreads para várias linguagens e sistemas operacionais. Ele é muito utilizado, em particular, no desenvolvimento de aplicações do tipo "embedded system" e "Internet das Coisas".No curso são apresentados inicialmente os conceitos que norteiam a programação concorrente em geral e a programação multithread em particular. Em seguida são mostrados os aspectos básicos tais como criar thread, esperar por thread, sincronizar threads, etc. Finalmente, são explorados os recursos mais avançados da API Pthreads, tais como sincronização em barreira e do tipo leitor/escritor. Também serão tratados aspectos fundamentais como deadlocks, exclusão mútua, atomicidade, condições de corrida e outros.Ao final do curso é desenvolvido um pequeno projeto para ilustrar os diversos conceitos e recursos apresentados ao longo das aulas. Em termos de ferramentas computacionais, será usado apenas um computador com o sistema operacional Linux, um editor de texto (gedit ou outro qualquer) e o compilador gcc. Também é possível usar um computador Windows com o WSL2 instalado. É claro que alunos acostumados com outros ambientes de programação, tais como as IDE Visual Studio Code ou Eclipse, podem usa-las. Porém elas não fazem parte do escopo do curso.