From 1d2def2d431d93d89763d34552cca97a6467b0f0 Mon Sep 17 00:00:00 2001 From: ChicYe <767904101@qq.com> Date: Wed, 22 Feb 2023 21:39:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Chic=EF=BC=9A=E5=A4=9A=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_thread-Queue.png" | Bin 0 -> 28627 bytes .../_thread-allocate_lock.png" | Bin 0 -> 35453 bytes .../_thread-start_new_thread.png" | Bin 0 -> 33471 bytes .../README.md" | 9 ++++ ...45\351\224\201\345\272\224\347\224\250.md" | 44 ++++++++++++++++++ ...33\345\273\272\347\272\277\347\250\213.md" | 39 ++++++++++++++++ ...37\345\210\227\345\272\224\347\224\250.md" | 44 ++++++++++++++++++ 7 files changed, 136 insertions(+) create mode 100644 "docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-Queue.png" create mode 100644 "docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-allocate_lock.png" create mode 100644 "docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-start_new_thread.png" diff --git "a/docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-Queue.png" "b/docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-Queue.png" new file mode 100644 index 0000000000000000000000000000000000000000..9896a301f381c4843277fdf012debb71d5f451f5 GIT binary patch literal 28627 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

Aw?0jJA!1wCZ9U8 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 literal 0 HcmV?d00001 diff --git "a/docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-allocate_lock.png" "b/docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-allocate_lock.png" new file mode 100644 index 0000000000000000000000000000000000000000..05f76571f08c16fa8c36e966b0a7c849fb7a168d GIT binary patch literal 35453 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 S3g-*pN9_Fvp)vt&um1;vIu`Q) literal 0 HcmV?d00001 diff --git "a/docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-start_new_thread.png" "b/docs/development_guide/zh/media/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/_thread-start_new_thread.png" new file mode 100644 index 0000000000000000000000000000000000000000..e84107a49481f4e822eea1652a84180e6342b125 GIT binary patch literal 33471 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 literal 0 HcmV?d00001 diff --git "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/README.md" "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/README.md" index e69de29b..1dd2c0bb 100644 --- "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/README.md" +++ "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/README.md" @@ -0,0 +1,9 @@ +# 多线程应用开发 + +多线程应用开发主要介绍模组支持的多线程功能,学习了多线程后,使读者在做项目时更加灵活编写代码,本部分内容主要介绍基本概念和理论,实际操作验证通过文章最后的链接跳转到应用文档。 + +# 多线程应用开发文档目录 + +- [多线程-创建线程应用开发](多线程-创建线程.md) +- [多线程-互斥锁应用开发](多线程-互斥锁应用.md) +- [多线程-消息队列应用开发](多线程-消息队列应用.md) diff --git "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\344\272\222\346\226\245\351\224\201\345\272\224\347\224\250.md" "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\344\272\222\346\226\245\351\224\201\345\272\224\347\224\250.md" index e69de29b..b1a4fd30 100644 --- "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\344\272\222\346\226\245\351\224\201\345\272\224\347\224\250.md" +++ "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\344\272\222\346\226\245\351\224\201\345\272\224\347\224\250.md" @@ -0,0 +1,44 @@ +# 多线程-互斥锁应用 +## 什么是多线程-互斥锁 + +本文介绍如何使用QuecPython的多线程-互斥锁功能,互斥锁可以资源不会冲突,通常用于保护硬件接口通信的完整性,如SPI、I2C通信命令要严格的指令顺序才能正确通信。 + +## 怎么使用多线程-互斥锁 + +### 软件应用 + +使用QuecPython开发的模组,调用\_thread模块中的_thread.allocate_lock()可以创建互斥锁,具体参数参考[_thread功能的API介绍文档](/../../API_reference/zh/QuecPython标准库/_thread-多线程.html),互斥锁必须成对使用。 + +```python +import utime +import _thread + +def thread_1(): + while True: + for i in range(3): + lock.acquire() + print('thread_1', i) + utime.sleep_ms(2000) + lock.release() + +def thread_2(): + while True: + for i in range(3): + lock.acquire() + print('thread_2', i) + utime.sleep_ms(2000) + lock.release() + +lock = _thread.allocate_lock() +_thread.start_new_thread(thread_1, ()) +_thread.start_new_thread(thread_2, ()) +``` +注意:线程里调用lock.acquire后进入阻塞并切换上下文,直到系统获得锁立即往下执行,lock.release()释放锁,有等待锁的线程会立即执行。 + + +## _thread功能测试 + +使用QPYcom工具执行代码,可以看出两条线程在打印信息,值得注意的是执行到utime.sleep_ms(2000)的时候并没有切换线程,是因为锁还没释放。 + +![](../media\多线程应用开发/_thread-allocate_lock.png) + diff --git "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\345\210\233\345\273\272\347\272\277\347\250\213.md" "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\345\210\233\345\273\272\347\272\277\347\250\213.md" index e69de29b..9a1f5c63 100644 --- "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\345\210\233\345\273\272\347\272\277\347\250\213.md" +++ "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\345\210\233\345\273\272\347\272\277\347\250\213.md" @@ -0,0 +1,39 @@ +# 多线程-创建线程 +## 什么是多线程 + +本文介绍如何使用QuecPython的多线程功能,多线程可以让应用程序的多个功能看起来在同时运行。 + +## 怎么使用多线程 + +### 软件应用 + +使用QuecPython开发的模组,调用\_thread模块中的start_new_thread可以创建新线程,具体参数参考[_thread功能的API介绍文档](/../../API_reference/zh/QuecPython标准库/_thread-多线程.html),创建线程不会阻塞当前代码往下执行。 + +```python +import utime +import _thread + +def thread_1(): + while True: + for i in range(10): + print('thread_1', i) + utime.sleep_ms(1000) + +def thread_2(): + while True: + for i in range(10): + print('thread_2', i) + utime.sleep_ms(1000) + +_thread.start_new_thread(thread_1, ()) +_thread.start_new_thread(thread_2, ()) +``` +注意:线程里需要调用utime.sleep代码才能上下文切换。 + + +## _thread功能测试 + +使用QPYcom工具执行代码,可以到出两条线程在打印信息。 + +![](../media\多线程应用开发/_thread-start_new_thread.png) + diff --git "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\346\266\210\346\201\257\351\230\237\345\210\227\345\272\224\347\224\250.md" "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\346\266\210\346\201\257\351\230\237\345\210\227\345\272\224\347\224\250.md" index e69de29b..4fe77fce 100644 --- "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\346\266\210\346\201\257\351\230\237\345\210\227\345\272\224\347\224\250.md" +++ "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\346\266\210\346\201\257\351\230\237\345\210\227\345\272\224\347\224\250.md" @@ -0,0 +1,44 @@ +# 多线程-消息队列 +## 什么是多线程-消息队列 + +本文介绍如何使用QuecPython的多线程-消息队列功能,消息队列用于线程间通信,如A是中断回调线程接收数据,B是普通线程处理数据,A线程把接收到的数据通过Queue发送到B线程后立即结束A线程,从而减少A线程占用CPU的时间。 + +## 怎么使用多线程-消息队列 + +### 软件应用 + +使用QuecPython开发的模组,调用queue模块中的queue.Queue()可以创建消息队列,具体参数参考[queue功能的API介绍文档](/../../API_reference/zh/QuecPython标准库/Queue - 普通队列.html),获取队列数据时,若队列有数据则立即返回,否则进入阻塞并切换上下文,直到队列有数据才继续往下执行。 + +```python +import _thread +from queue import Queue +import utime + +# 初始化队列 +q = Queue(maxsize=100) + +def thread_get(): + while True: + # q.get 会阻塞等待消息过来,每当有q.put()执行完后 q.get()会收到数据,解除阻塞往下执行 + item = q.get() + print("q.get:", item) + +# 开启线程在哪等待消息 +_thread.start_new_thread(thread_get, ()) +# put消息到队列 +q.put(1) +utime.sleep(1) +q.put() # 空数据默认 None +utime.sleep(1) +q.put(None) # 空数据默认 None +utime.sleep(1) +q.put(3) +``` + + +## queue功能测试 + +使用QPYcom工具执行代码,可以看出每当q.put()数据后,等待消息的线程立即执行打印数据。 + +![](../media\多线程应用开发/_thread-Queue.png) + -- Gitee From 41c7b5e3b5f73226410072b18c1d54cb87fda005 Mon Sep 17 00:00:00 2001 From: ChicYe <767904101@qq.com> Date: Mon, 27 Feb 2023 09:18:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Chic=EF=BC=9A=E5=A4=9A=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md" | 11 +++++++++++ ...45\272\224\347\224\250\345\274\200\345\217\221.md" | 0 ...45\210\233\345\273\272\347\272\277\347\250\213.md" | 6 +++--- 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 "docs/development_guide/zh/\345\244\226\350\256\276\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\226\350\256\276-\345\244\226\346\214\202WiFi\345\272\224\347\224\250\345\274\200\345\217\221.md" diff --git "a/docs/advanced_tutorial/zh/\344\272\221\345\271\263\345\217\260\345\257\271\346\216\245/README.md" "b/docs/advanced_tutorial/zh/\344\272\221\345\271\263\345\217\260\345\257\271\346\216\245/README.md" index e69de29b..2b0c6743 100644 --- "a/docs/advanced_tutorial/zh/\344\272\221\345\271\263\345\217\260\345\257\271\346\216\245/README.md" +++ "b/docs/advanced_tutorial/zh/\344\272\221\345\271\263\345\217\260\345\257\271\346\216\245/README.md" @@ -0,0 +1,11 @@ +# 云平台对接应用开发 + +云平台对接应用开发主要介绍模组连接各个云平台的步骤和通信测试结果,本部分内容主要介绍基本概念和理论,实际操作验证通过文章最后的链接跳转到应用文档。 + +# 云平台对接应用开发文档目录 + +- [云平台对接-移远云连接教程](云平台对接-移远云连接教程.md) +- [云平台对接-阿里云连接教程](云平台对接-阿里云连接教程.md) +- [云平台对接-腾讯云连接教程](云平台对接-腾讯云连接教程.md) +- [云平台对接-华为云](云平台对接-华为云.md) +- [云平台对接-AWS](云平台对接-AWS.md) diff --git "a/docs/development_guide/zh/\345\244\226\350\256\276\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\226\350\256\276-\345\244\226\346\214\202WiFi\345\272\224\347\224\250\345\274\200\345\217\221.md" "b/docs/development_guide/zh/\345\244\226\350\256\276\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\226\350\256\276-\345\244\226\346\214\202WiFi\345\272\224\347\224\250\345\274\200\345\217\221.md" new file mode 100644 index 00000000..e69de29b diff --git "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\345\210\233\345\273\272\347\272\277\347\250\213.md" "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\345\210\233\345\273\272\347\272\277\347\250\213.md" index 9a1f5c63..4f143a94 100644 --- "a/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\345\210\233\345\273\272\347\272\277\347\250\213.md" +++ "b/docs/development_guide/zh/\345\244\232\347\272\277\347\250\213\345\272\224\347\224\250\345\274\200\345\217\221/\345\244\232\347\272\277\347\250\213-\345\210\233\345\273\272\347\272\277\347\250\213.md" @@ -7,7 +7,7 @@ ### 软件应用 -使用QuecPython开发的模组,调用\_thread模块中的start_new_thread可以创建新线程,具体参数参考[_thread功能的API介绍文档](/../../API_reference/zh/QuecPython标准库/_thread-多线程.html),创建线程不会阻塞当前代码往下执行。 +使用QuecPython开发的模组,调用\_thread模块中的_thread.start_new_thread()可以创建新线程,具体参数参考[_thread功能的API介绍文档](/../../API_reference/zh/QuecPython标准库/_thread-多线程.html),创建线程不会阻塞当前代码往下执行。 ```python import utime @@ -33,7 +33,7 @@ _thread.start_new_thread(thread_2, ()) ## _thread功能测试 -使用QPYcom工具执行代码,可以到出两条线程在打印信息。 +使用QPYcom工具执行代码,可以看出两条线程在打印信息。 -![](../media\多线程应用开发/_thread-start_new_thread.png) +![](../media/多线程应用开发/_thread-start_new_thread.png) -- Gitee