仓颉之并发编程的速度激情
案例概述
背景与简介
华为开发者空间面向广大开发者群体提供专属的云上成长空间,预置免费华为跟技术工具和资源,为开发者提供学习、开发到部署的全旅程支持,开发者空间提供了AI原生应用引擎、AI Notebook、云开发环境、FunctionGraph云函数、Astro低代码等核心能力,并在算力、模型、平台、应用层实现全方位优化。
仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。主要应用于鸿蒙原生应用及服务应用等场景中,为开发者提供良好的编程体验。
并发编程是现代编程语言中不可或缺的特性,仓颉编程语言提供抢占式的线程模型作为并发编程机制。线程可以细分为两种不同概念,语言线程和 native 线程。
○ 语言线程是编程语言中并发模型的基本执行单位。仓颉编程语言希望给开发者提供一个友好、高效、统一的并发编程界面,让开发者无需关心操作系统线程、用户态线程等差异,因此提供仓颉线程的概念。开发者在大多数情况下只需面向仓颉线程编写并发代码。
○ native 线程指语言实现中所使用到的线程(一般是操作系统线程),它们作为语言线程的具体实现载体。不同编程语言会以不同的方式实现语言线程。例如,一些编程语言直接通过操作系统调用来创建线程,这意味着每个语言线程对应一个 native 线程,这种实现方案一般被称之为 1:1
线程模型。此外,另有一些编程语言提供特殊的线程实现,它们允许多个语言线程在多个 native 线程上切换执行,这种也被称为 M:N
线程模型,即 M 个语言线程在 N 个 native 线程上调度执行,其中 M 和 N 不一定相等。当前,仓颉语言的实现同样采用 M:N
线程模型;因此,仓颉线程本质上是一种用户态的轻量级线程,支持抢占且相比操作系统线程更轻量化。
仓颉线程本质上是用户态的轻量级线程,每个仓颉线程都受到底层 native 线程的调度执行,并且多个仓颉线程可以由一个 native 线程执行。每个 native 线程会不断地选择一个就绪的仓颉线程完成执行,如果仓颉线程在执行过程中发生阻塞(例如等待互斥锁的释放),那么 native 线程会将当前的仓颉线程挂起,并继续选择下一个就绪的仓颉线程。发生阻塞的仓颉线程在重新就绪后会继续被 native 线程调度执行。
案例优势
案例结合代码体验,帮助大家更直观的了解仓颉语言中的并发编程。
案例流程
流程说明
1. 登录华为开发者空间,连接开发者空间云主机;
2. 使用CodeArt IDE for Cangjie创建仓颉工程;
3. 仓颉语言中并发编程的练习使用。
案例实操:仓颉之并发编程的速度激情 👈👈👈体验完整版案例,点击这里。
案例最终效果
- 点赞
- 收藏
- 关注作者
评论(0)