- 博客(5)
- 收藏
- 关注
原创 c语言---线程管理
一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在单CPU单核的计算机上,使用多线程技术,也可以把进程中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,从而提高了程序的执行效率。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。线程是独立调度和分派的基本单位。
2023-08-02 18:03:58
150
原创 20道嵌入式经典面试题(附答案)
4. 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也跟着死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。而线程是共享进程中的数据,使用相同的地址空间,因此,CPU切换一个线程的花费远比进程小很多,同时创建一个线程的开销也比进程小很多。线程是进程的一个执行单元,是比进程还要小的独立运行的基本单位。5. 进程切换时,消耗的资源大,效率低。
2023-08-02 17:57:46
4974
原创 C嵌入式开发面试
编译程序时,只要遇到#error就会跳出一个编译的错误,当程序比较大时吗,往往有些宏定义实在外部指定的,或是在系统头文件的中的指定的,当你不太确定的当前是否定义了xxx时,就可以改成如下这样进行的编译。在模块内,但在函数体外,一个被声明为静态的变量可以被该模块内所用的函数访问,但不能被模块外其他函数访问。在模块内,一个被声明被静态的函数只能被该模块内的其他函数调用,也就是说,该函数被限制在声明它的模块得本地范围内使用,当一个进程建立,系统就会为它分配地址空间,而线程是共享进程的数据,使用的相同的地址空间。
2023-08-02 09:56:31
99
1
原创 【MindSpore】一种参数归一化实现方式
1. 功能描述:MindSpore实现WeightNorm参数归一化。2. 实现分析:在MindSpore实现高性能方案,建议采用图模式,同时也能保证动静统一。MindSpore图模式需要把归一化操作表达到整图里,可以采用自定义的方式在网络结构中实现。3. 参数归一化功能简介(背景介绍):在深度学习中通常对卷积层的权重进行参数归一化,参数归一化功能根据以下公式对传入的 layer 中的权重参数进行归一化:image.png公式中w是网络权重,g 代表长度变量 ,v代表方向变量。权重归一化可以将
2021-11-30 15:00:07
447
原创 【MindSpore】实现保存最优模型
1. 功能描述:MindSpore训练模型时,实现保存最优模型。2. 实现保存最优模型功能简介:在面对复杂网络时,往往需要进行几十甚至几百次的epoch训练。在训练之前,很难掌握在训练到第几个epoch时,模型的精度能达到满足要求的程度,所以经常会采用一边训练的同时,在相隔固定epoch的位置对模型进行精度验证,并保存相应的模型,等训练完毕后,通过查看对应模型精度的变化就能迅速地挑选出相对最优的模型。流程如下:1) 定义回调函数EvalCallBack,实现同步进行训练和验证。2) 定义训练网络
2021-11-29 15:46:04
1181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人