线程初步

        Java线程机制基于来自C语言的低级的p线程方式,你创建任务,并通过某种方式将一个线程附着到任务上,使得这个线程可以驱动任务

        并发程序性能:上下文切换---并发导致性能降低  并发会解决线程阻塞问题
        进程是系统对一个正在运行的程序的一种抽象,一个系统可以同时运行多个进程,每次用户通过向外部系统输入一个可执行目标文件的名字,并运行一个程序时,系统就会创建一个新的进程,然后在新的进程的上下文中运行这个可执行目标文件;应用程序也能够创建新的的进程,并且在这个新的进程的上下文中运行它们自己的代码或者其他应用程序

        进程提供给应用程序的关键抽象:
        1.一个独立的逻辑控制流,他提供了一个假象,好像程序独占使用处理器
        2.一个私有的地址空间,提供一个假象,程序服战使用存储器系统
      
       并发运行则是说一个进程的指令和另一个进程的指令交错执行(系统机制上下文切换)
线程:是比进程更小的执行单位,线程是在进程的基础上进一步划分出来,线程是程序执行的一条路径,一个进程中可以包含多个线程

进程与线程区别
线程是进行相应进程的执行单元
线程运行在其所在进程所开辟的内存空间中/上下文中(由程序正确运行所需的状态的组合)
一个进程所有的线程都共享其开辟的内存,共享同样的代码和全局数据

==>什么是多线程?多线程的应用场景?
          多线程是实现了并发机制的一种有效手段,一个进程中可以包含多条线程,多个线程可以同时存在,同时运行,可以提高程序的效果,可以完成多项工作
例如:
1.word检查拼写单词
2.迅雷(下载时开启多条线程一起下载)
3.QQ同时和多个人视频或者聊天
4.服务器同时处理客户端发起的请求


线程
          同基于进程相似,线程也是由内核自动调度,并且内核通过一个整数ID来识别线程,同基于I/O多路复用的流一样,多个线程运行在单一进程的上下文中,因此共享这个进程虚拟地址空间的整个内容,包括代码、数据、堆、共享库和打开文件。
        每个进程开始生命周期时都是单一线程,这个线程称为主线程(并发线程要比并发进程快得多,线程上下文比进程上下文小,切换快的多)和一个进程相关的线程组成一个对等线程池

==>并行/并发
并发(多任务/一个中心、多个控制流):指的是一个同时具有多个活动的系统/逻辑控制刘在时间上重叠
并行(快/多核 具有并发流的应用程序能减少交错执行):是用并发使一个系统运行的更快
多核心可以在多个核上并行的调度这些并发线程,而不是在单核上顺序调度。写顺序程序只有一条逻辑流;写并发程序有多条并发流
并行程序是一个运行在多个处理器上的并发程序。因此,并行程序的集合是并发程序集合的真子集。
并行可以在计算机系统的多个抽象层次上运用

==》线程级并发
构建进程这个抽象,我们能够设计出同时执行多个系统的程序,这就导致了并发。使用线程,甚至可以在一个进程中执行多个控制流
单处理器系统:并发通过是在一台计算机执行的进程间快速切换的方式实现的。
就好像杂技演员保持多个球在空中飞舞,这种并发允许多个客户于系统交互
多处理器系统:多核与超线程技术  超线程:允许一个CPU执行多个控制流的技术   多核可以减少执行多个任务时模拟并发的需要
一个构建并发服务器的自然方法就是,在父进程中接收客户端的链接请求,然后创建一个新的进程来为每个新的客户端提供服务

==》线程(Thread类)
使用一个类基础于Thread类,此类就可以称为多线程操作类,在Thread子类中必须明确的重写run()方法,此方法就是线程的主体
在Java中Thread类自身不执行任何操作,他只是驱动赋予它的任务。Thread:进程的一个执行单元(进程下的一个线程)
线程是程序中执行的一个部分,JVM允许应用程序并发的运行多个线程

在程序執行中,start()方法只是启动run()方法线程,然后start()方法返回,run()方法开启线程一直运行
main()方法创建Thread对象时,在它的任务退出其run()方法并死亡之前,垃圾回收期无法清除他
一个线程会创建一个单独的执行线程,在对start()的调用完成后,他仍然会继续存在

          后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分,因此,所有的非后台线程结束时,程序也就终止了,同时杀死进程中所有的后台线程,反过来说,只要任何非后台线程还在运行,程序就不会终止。
内容概要:本文详细介绍了如何利用Simulink进行自动代码生成,在STM32平台上实现带57次谐波抑制功能的霍尔场定向控制(FOC)。首先,文章讲解了所需的软件环境准备,包括MATLAB/Simulink及其硬件支持包的安装。接着,阐述了构建永磁同步电机(PMSM)霍尔FOC控制模型的具体步骤,涵盖电机模型、坐标变换模块(如Clark和Park变换)、PI调节器、SVPWM模块以及用于抑制特定谐波的陷波器的设计。随后,描述了硬件目标配置、代码生成过程中的注意事项,以及生成后的C代码结构。此外,还讨论了霍尔传感器的位置估算、谐波补偿器的实现细节、ADC配置技巧、PWM死区时间和换相逻辑的优化。最后,分享了一些实用的工程集成经验,并推荐了几篇有助于深入了解相关技术和优化控制效果的研究论文。 适合人群:从事电机控制系统开发的技术人员,尤其是那些希望掌握基于Simulink的自动代码生成技术,以提高开发效率和控制精度的专业人士。 使用场景及目标:适用于需要精确控制永磁同步电机的应用场合,特别是在面对高次谐波干扰导致的电流波形失真问题时。通过采用文中提供的解决方案,可以显著改善系统的稳定性和性能,降低噪声水平,提升用户体验。 其他说明:文中不仅提供了详细的理论解释和技术指导,还包括了许多实践经验教训,如霍尔传感器处理、谐波抑制策略的选择、代码生成配置等方面的实际案例。这对于初学者来说是非常宝贵的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值