File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -167,6 +167,16 @@ async def predict(x:float) :
167167
168168前端大部分的请求是通过浏览器发送请求到后端,后端接收请求并处理,最后返回响应给前端。
169169
170+ :::tip
171+ 为了最大限度压榨计算的能力。Uvicorn可以启动多个相同的实例.
172+
173+ 推荐通过命令行启动多work:` uvicorn app:app --host 0.0.0.0 --port 8000 --workers 4 `
174+
175+ Uvicorn多Worker通过多进程,创建多个完全一样的副本,运行时不同副本完全隔离。因此全局变量的正确做法是用Redis等外部存储。
176+
177+ 多Worker监听同一个端口,如何调度?不是Uvicorn自己实现,调度由操作系统内核完成。
178+ :::
179+
170180请求是一种相当复杂的数据类型。
171181
172182### 请求方法
Original file line number Diff line number Diff line change @@ -5,7 +5,6 @@ title: 数组和指针
55
66构造数据是指由用户可以定义的、非内置的数据类型。主要有数组、结构体、联合体。
77
8-
98## 数组
109
1110数组属于** 构造数据类型** ,是一组` 相同类型 ` 数据的` 连续内存 ` 集合。
@@ -620,6 +619,7 @@ char c = 'a'; // 占用1个字节
620619
621620- 在计算机中所有数据都存储在内存单元中,而每个内存单元都有一个对应的地址, 只要通过这个地址就能找到对应单元中存储的数据.
622621- 由于通过地址能找到所需的变量单元,所以我们说该地址指向了该变量单元。将地址形象化的称为“指针”
622+ - 指针的本质是对内存访问的抽象,理解了内存的原理,也就理解了指针。人们往往误以为指针就是内存地址,其实二者是有区别的。指针是一种类型,它的值是内存地址,而不是数据。所以指针变量存放的是内存地址,而不是内存地址对应的数据。内存地址是基于字节的,但由于指针具有类型,所以它指向了一段内存,这段内存的大小取决于其类型,而指针存储的就是这段内存的起始地址。
623623
624624- 内存单元的指针(地址)和内存单元的内容是两个不同的概念。
625625 ![ ] ( https://images.weserv.nl/?url=https://img-blog.csdnimg.cn/img_convert/540000371e0da0fb105248642ef9db24.png )
@@ -803,7 +803,7 @@ int *****m2; //取值*****m2
803803> - 注意: 数组名 a 不代表整个数组,只代表数组首元素的地址。
804804> - “p=a;”的作用是“把 a 数组的首元素的地址赋给指针变量 p”,而不是“把数组 a 各元素的值赋给 p”
805805
806- ##
806+
807807
808808## 指针访问数组元素
809809
You can’t perform that action at this time.
0 commit comments