大数据讲课笔记1.4 进程管理

文章目录

  • 零、学习目标
  • 一、导入新课
  • 二、新课讲解
    • (一)进程概述
      • 1、基本概念
      • 2、三维度看待进程
      • 3、引入多道编程模型
        • (1)CPU利用率与进程数关系
        • (2)从三个视角看多进程
      • 4、进程的产生和消亡
        • (1)进程的产生
        • (2)进程的消亡
      • 5、进程三种状态
      • 6、进程ID(PID)
      • 7、终端设备类类型
        • (1)TTY(TeleTYpewriter)
        • (2)PTY(Pseudo-TTY)
    • (二)查看进程
      • 1、进程查看命令 - ps
        • (1)命令作用
        • (2)参数说明
        • (3)操作案例
      • 2、Linux进程状态
      • 3、观察进程变化命令 - top
        • (1)参数选项
        • (2)操作案例演示
      • 4、查看进程树命令 - pstree
        • (1)命令概述
        • (2)安装pstree
        • (3)参数说明
        • (4)操作案例演示
    • (三)杀死进程 - kill命令
      • 1、命令作用
      • 2、参数说明
      • 3、操作案例演示
    • (四)系统资源监控
      • 1、free命令
      • 2、uname命令
      • 3、uptime命令
      • 4、netstat命令
      • 5、vmstat命令
    • (五)任务管理
      • 1、前台进程
      • 2、后台进程
      • 3、操作案例演示
  • 三、归纳总结
  • 四、上机操作

零、学习目标

  1. 查看进程与杀死进程
  2. 系统资源监控
  3. 任务管理

一、导入新课

  • 在Linux系统中,进程是执行中的程序实例。我们需要学会如何查看和管理这些进程,以便更好地了解系统的运行状态,并进行必要的调整和优化。此外,我们还需要学会如何监控系统的资源使用情况,以便及时发现并解决可能出现的问题。通过学习本节的内容,我们将能够熟练地使用各种命令行工具来查看和管理进程、监控系统资源以及进行任务管理,从而提高我们的工作效率和系统的稳定性。

二、新课讲解

在这里插入图片描述

  • 在Linux系统中,进程管理是一项非常重要的任务。通过掌握进程管理的相关知识和技能,我们可以更好地监控系统的运行状态,及时发现并解决问题,从而提高工作效率和系统的稳定性。
  • 本节我们将学习如何查看和管理进程、如何进行系统资源监控以及如何进行任务管理。首先,我们将介绍进程的基本概念和模型,包括进程的产生和消亡、三状态以及进程ID等。接下来,我们将学习如何使用各种命令行工具来查看进程、杀死进程以及监控系统资源。最后,我们将学习如何管理和控制前台和后台进程,并通过一些操作案例来加深理解和应用。
  • 总之,通过学习本节的内容,我们将能够更好地理解和掌握Linux系统中的进程管理,从而更加熟练地使用这些基本的命令行工具来完成各种常见的文件和目录操作任务。

(一)进程概述

  • 在计算机系统中,进程是操作系统进行资源分配和调度的基本单位。本节我们将从基本概念、三维度看待进程模型、进程的产生和消亡以及进程的三种状态等方面对进程进行概述。

1、基本概念

  • 进程 = 程序 + 执行。在计算机系统中,进程是指正在运行的程序实例。当一个程序被加载到内存中并开始执行时,就会创建一个新的进程。每个进程都有自己的地址空间,并且可以独立地进行计算和处理任务。
  • 简单来说,进程就是程序与CPU运算的结合体。当我们把一个程序从磁盘中加载到内存中后,CPU就开始对这个程序进行运算和处理。此时,我们可以说这个程序变成了一个进程。进程是操作系统进行资源分配和调度的基本单位,它能够独立地进行计算和处理任务,从而实现多道编程,提高CPU的利用率。

2、三维度看待进程

(1)内存维度:每个进程都独占一块地址空间,CPU处理进程实际上就是处理这个进程内存中的数据信息。这意味着,当一个进程正在执行时,它所占用的内存是不能被其他进程访问的。
(2)执行的逻辑维度:每一个进程都可以被CPU所处理和计算,此外,每一个进程也可以挂起,让其他进程得以处理。在同一个时刻,只能有一个进程被cpu所处理。这意味着,虽然操作系统可以同时运行多个进程,但是在微观上,这些进程是按照顺序依次被执行的。因此,在单核架构下,进程模型实际上是“串行”处理的。然而,在多核架构下,进程模型可以在宏观和微观上都是并行处理的。
(3)时间维度:每个进程执行一段时间之后,肯定都完成了一定的工作量。即进程是随时间向前推进的。这意味着,进程是在不断变化和发展中的,而不是静态不变的。

  • 进程让每个用户感觉自己独占CPU:在计算机系统中,进程是指正在运行的程序实例。当一个程序被加载到内存中并开始执行时,就会创建一个新的进程。每个进程都有自己的地址空间,并且可以独立地进行计算和处理任务。由于每个进程都独占一块地址空间,因此CPU在处理进程时实际上是处理这个进程内存中的数据信息。这意味着,即使多个用户同时使用同一台计算机,他们各自的进程也可以各自独立地进行计算和处理任务,从而让用户感觉像是自己独占了CPU一样。此外,在多道编程模型下,操作系统会将多个进程分配到不同的处理器核心上,并且在宏观上是并行处理的。因此,即使在同一时刻有多个进程在运行,用户仍然可以感觉到自己的进程得到了及时的响应和处理,就像是自己独占了CPU一样。
    在这里插入图片描述

3、引入多道编程模型

(1)CPU利用率与进程数关系
  • CPU利用率与进程数关系图
    在这里插入图片描述
  • 在计算机系统中,进程是指正在运行的程序实例。操作系统可以同时处理多个进程,这就是多道编程模型。而在最开始的操作系统中,采用的是单道编程模型,即一个程序处理完,再处理下一个程序。
  • 单道编程模型的缺点是响应时间慢和CPU利用率非常低。例如,假设一个进程中有20%需要做CPU运算,80%在做IO(发送IO事件时,CPU时闲置的),那么CPU利用率就是20%。而采用单道编程模型,CPU利用率只能达到1-0.8=20%。
  • 为了提高CPU的利用率,引入了多道编程模型。多道编程模型可以让操作系统同时处理多个进程,从而提高了CPU的利用率。例如,同时执行两个进程,CPU利用率可以达到1-0.8×0.8=36%;同时执行三个进程,CPU利用率可以达到1-0.8×0.8×0.8=48.8%。
  • 因此,引入进程模型的目的就是为了满足多道编程,而多道编程的目的就是为了提高CPU的利用率。随着进程数量的增加,CPU的利用率也会逐步提高。
(2)从三个视角看多进程
  • 物理视角、逻辑视角和时序视角
    在这里插入图片描述
  • 物理视角:从物理资源分配的角度看多进程。每个进程都有自己的独立内存空间,包括代码段、数据段和堆栈段等。操作系统为每个进程分配相应的物理资源,并通过虚拟内存管理技术实现进程之间的隔离。这样,即使多个进程同时运行,它们也不会相互干扰。
  • 逻辑视角:从逻辑执行顺序的角度看多进程。在多进程系统中,多个进程可以并发地执行,即在同一时间内有多个进程处于运行状态。然而,由于单个处理器只能执行一个指令流,所以实际上这些进程是交替执行的。操作系统通过调度算法决定哪个进程应该获得CPU并进行计算,从而实现了并发执行的效果。
  • 时序视角:从时间轴上看多进程。在一个时间段内,多个进程按照一定的顺序执行。这种顺序可能受到许多因素的影响,如优先级、等待I/O操作的时间、系统的负载情况等。操作系统会根据这些因素调整进程的执行顺序,以达到最优的性能和响应速度。
  • 总结来说,物理视角关注的是资源分配,逻辑视角关注的是执行顺序,而时序视角关注的是时间轴上的进程行为。理解这三个视角有助于我们更好地理解和控制多进程系统的行为。

4、进程的产生和消亡

(1)进程的产生
  • 操作系统产生服务进程:操作系统在启动时会创建一些必要的服务进程,如网络服务、文件系统服务等。
  • 父进程创建子进程:一个已经存在的进程可以创建一个新的进程,这个新进程被称为子进程。父进程和子进程共享相同的代码和数据空间,但拥有不同的堆栈和寄存器状态。
  • 用户请求创建一个进程:用户可以通过执行程序或命令来创建一个新的进程。例如,在Linux系统中,用户可以通过输入./program_name来运行一个程序,并创建一个新的进程。
(2)进程的消亡
  • 进程的所有运算都处理完之后,自行退出:当一个进程完成所有运算并返回结果后,它将自动退出。这是正常情况下进程结束的方式。
  • 进程在运行过程中产生错误或异常而强行退出:如果一个进程在运行过程中发生了错误或异常,操作系统可能会终止该进程。这通常会导致进程的资源被释放,以便其他进程使用。
  • 一个进程被其他进程所杀死而退出:在一个多任务系统中,一个进程可以被另一个进程杀死。这种情况下,被杀死的进程将立即停止执行,并释放其占用的资源。

5、进程三种状态

  • 进程有三种状态:执行态(Running)就绪态(Ready)阻塞态(Blocking)。在执行态,一个进程正在被CPU运行;在就绪态,一个进程已经准备好被执行,但还没有被分配到CPU上;在阻塞态,一个进程由于某些原因无法继续执行,需要等待某种条件满足才能恢复执行。
  • 对于挂起态,它可能是由于发生了某些阻塞操作,比如I/O事件。例如,当一个进程需要从磁盘读取数据时,它会进入阻塞态,直到数据被读取完毕。此外,一个进程也可能会主动挂起自己,以便让其他进程得以处理。例如,一个长时间运行的进程可能会主动挂起自己,以避免占用过多的CPU资源。最后,用户也可以主动将进程挂起,比如使用sleep操作来暂停进程的执行。
  • 需要注意的是,对于第一类和第三类挂起的进程,即使把CPU让给这个进程,CPU也无法处理它,因此我们将这样的进程称为阻塞态进程。而第二类进程,我们称之为就绪态进程,因为它们已经准备好被执行,只需要被分配到CPU上就可以开始执行。
  • 进程三状态转换图
    在这里插入图片描述
  • 创建态 → 就绪态:当一个进程被创建时,它会进入创建态,然后经过初始化后,如果所有必要的资源都可用,则变为就绪态。
  • 就绪态 → 运行态:当CPU从系统中的就绪队列选择一个进程进行执行时,该进程的状态将从就绪态变为运行态。
  • 运行态 → 就绪态:当一个正在运行的进程的时间片用完或者被高优先级的进程抢占时,它的状态将从运行态变为就绪态。
  • 运行态 → 阻塞态:当一个运行中的进程请求某种I/O操作或其他资源而不能立即得到满足时,它的状态将从运行态变为阻塞态。
  • 阻塞态 → 就绪态:当导致进程阻塞的事件发生并且相关资源变得可用时,进程的状态将从阻塞态变为就绪态。
  • 任何状态 → 终止态:当一个进程完成其工作或者遇到错误需要退出时,它可以从任何状态直接进入终止态。

6、进程ID(PID)

  • 在Linux中,进程启动时,操作系统会为其分配一个唯一的进程ID(PID)。这个PID用于标识系统中的每一个进程。通过执行命令ps -aux,可以查看系统中所有正在运行的进程及其详细信息。
  • 执行命令:ps -aux,查看进程详情
    在这里插入图片描述

7、终端设备类类型

  • TTY和PTY是计算机术语,用于描述终端设备的类型。
(1)TTY(TeleTYpewriter)
  • TTY最初是指一种电传打字机设备,它通过串行线路发送和接收数据。在现代计算机系统中,TTY通常用来指代任何类型的字符设备,如控制台、伪终端等。TTY设备可以直接与操作系统进行交互,通常用于登录、命令行界面和其他文本输入输出操作。
(2)PTY(Pseudo-TTY)
  • PTY也称为虚拟终端或伪终端,是一种软件模拟的TTY设备。PTY允许在一个进程之间创建一个“哑”终端,使得该进程可以像真正的TTY设备一样工作。这使得一个程序可以在没有实际物理TTY设备的情况下与另一个程序进行交互,例如远程登录到另一台机器上时使用的SSH协议就是一个例子。

  • 简单来说,TTY是硬件上的字符设备接口,而PTY是软件模拟的TTY设备。

(二)查看进程

1、进程查看命令 - ps

  • ps: process status
(1)命令作用
  • 将某个时间点的程序运作情况截取下来。
(2)参数说明
参数作用
a和输入终端关联的所有进程,通常与x一起使用,列出完整信息。
x后台进程,通常与a 这个参数一起使用,可列出较完整信息
u有效使用者相关的进程
(3)操作案例
  • 执行命令:ps la | head -5,能够观察所有系统的数据
    在这里插入图片描述
  • 执行命令:ps axjf | head -20,连同部分程序树状态
    在这里插入图片描述
  • 执行命令:ps l仅查看自己的bash相关的进程
    在这里插入图片描述
  • 执行命令:ps aux观察系统所有进程
    在这里插入图片描述
    在这里插入图片描述
属性含义
USER进程使用者
PID进程标识符
%CPU进程使用掉的CPU 资源百分比
%MEM进程所占用的物理内存百分比
VSZ进程使用掉的虚拟内存量(KBytes)
RSS进程占用的物理的内存量(KBytes)
TTY进程在哪个终端机上面运作,若与终端机无关则显示?, 另外, tty1-tty6 是本机上面的登入者程序,若为pts/0 等等的,则表示为由网络连接进主机的程序
STAT进程目前的状态,状态显示与ps -l 的S旗标相同(R/S/D/T/Z)
START进程被触发启动的时间
TIME进程实际使用CPU运作的时间
COMMAND进程的实际命令

2、Linux进程状态

状态值含义
R (TASK_RUNNING)指正在被CPU运行或者就绪的状态(在run_queue队列里的状态)
S (TASK_INTERRUPTIBLE)可中断的睡眠状态,处于等待状态中的进程,一旦被该进程等待的资源被释放,那么该进程就会进入运行状态
D (TASK_UNINTERRUPTIBLE)不可中断的睡眠状态,该状态的进程只能用wake_up()函数唤醒。
T (TASK_STOPPED / TASK_TRACED)当进程收到信号SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU时就会进入暂停状态。可向其发送SIGCONT信号让进程转换到可运行状态。
Z (TASK_DEAD -EXIT_ZOMBIE)僵尸进程:当进程已经终止运行,但是父进程还没有询问其状态的情况。不可被kill,即不响应任务信号,无法用SIGKILL杀死。

3、观察进程变化命令 - top

(1)参数选项
选项含义
-d后面可以接秒数,就是整个程序画面更新的秒数;默认5秒。
-b以批次方式执行top,还有更多参数可以使用,通常会搭配数据流重导向来将批次的结果输出成为档案。
-n与-b 搭配,作用是需要进行几次top的输出结果。
-p指定某些个PID 来进行观察监测。
(2)操作案例演示
  • 执行命令:top -d 3,每隔三秒更新一次数据
    在这里插入图片描述
  • 执行命令:top -b -n 2,进行两次top的输出结果
    在这里插入图片描述
    在这里插入图片描述

4、查看进程树命令 - pstree

(1)命令概述
  • pstree命令用于查看进程树之间的关系,即哪个进程是父进程,哪个是子进程,可以直观地看出是谁创建了谁。Linux 系统中进程之间的关系就是一棵树,树的根就是进程 PID 为 1 的 init 进程。
(2)安装pstree
  • 执行命令:pstree,报错找不到命令,说明CentOS7默认没有安装pstree
    在这里插入图片描述
  • 执行命令:yum -y install psmisc
    在这里插入图片描述
(3)参数说明
参数含义
-A各进程树之间的连接以 ASCII 码字符来连接
-U各进程树之间的连接以 utf8 字符来连接,某些终端可能会有错误
-p同时列出每个进程的 PID
-u同时列出每个进程的所属账号名称
(4)操作案例演示
  • 执行命令:pstree
    在这里插入图片描述
  • 执行命令:pstree -Aup
    在这里插入图片描述

(三)杀死进程 - kill命令

1、命令作用

  • kill发送信号,并不只是杀进程。

2、参数说明

参数函数
-l这个是L的小写,列出目前kill 能够使用的信号(signal)有哪些? signal 向进程发送的信号,指示其进行不同操作。用man 7 signal 可知。
-15以正常的程序方式终止一个进程!!!
-9立刻强制终止一个进程!!!
-2代表由键盘输入[Ctrl + C] 同样的动作
-1对于sshd这样的守护进程,重新读取一次参数的配置文件(类似reload),如果进程为非守护进程,默认为终止进程

3、操作案例演示

  • 执行命令:pstree -aup | grep sshd
    在这里插入图片描述

  • 用参数-1来杀910进程,执行命令:kill -1 910
    在这里插入图片描述

  • 说明没有杀死sshd进程,又重新加载了

  • 用参数-9来杀死这个守护进程sshd,执行命令:kill -9 910
    在这里插入图片描述

  • 启动firewalld进程并查看其进程树
    在这里插入图片描述

  • 问题:父进程被kill掉,它的子进程是否就一起被kill掉?
    在这里插入图片描述

  • 结论:父进程被kill掉了,但是其子进程还依然存在。

  • 如果任务是杀死所有用户的firewalld进程,那么就需要多次发布kill命令,很烦的,怎么办呢?Linux提供了一个很好的命令:killall。

  • 利用killall命令杀死所有用户的firwalld进程
    在这里插入图片描述

(四)系统资源监控

1、free命令

  • 观察内存(memory)使用情况
    在这里插入图片描述

2、uname命令

  • 查阅系统与核心相关信息
    在这里插入图片描述

3、uptime命令

  • 观察系统启动时间与工作负载
    在这里插入图片描述

4、netstat命令

  • 网络状态监控,CentOS7默认没有安装netstat,需要自行安装
  • 执行命令:yum -y install net-tools
    在这里插入图片描述
  • 执行命令:netstat -atp
    在这里插入图片描述
  • 执行命令:netstat -antp
    在这里插入图片描述
  • 执行命令:netstat -lntp
    在这里插入图片描述

5、vmstat命令

  • 侦测系统资源变化,CPU/内存/磁盘输入输出状态
  • 执行命令:vmstat 1 4,统计目前主机CPU状态,每秒一次,共计四次
    在这里插入图片描述

(五)任务管理

1、前台进程

  • 可以控制与执行命令的bash环境称为前台进程。

2、后台进程

  • 在操作系统中自行运行,你无法使用[Ctrl + C]终止,可使用bg/fg命令操作的任务。
  • 后台执行的任务不能接收终端(terminal/shell)的输入。

3、操作案例演示

  • Ctrl+Z切换到后台,或者执行命令:tail -F anaconda-ks.cfg &
    在这里插入图片描述

  • 在当前bash执行多个任务
    在这里插入图片描述

  • 观察后台任务,用jobs命令(后台任务是一个任务栈,+表明该任务处于栈顶,发布fg命令,只有处于栈顶的后台任务才能切换成前台任务)
    在这里插入图片描述

  • 执行命令:jobs -r # r: Running
    在这里插入图片描述

  • 执行命令:jobs -s # s: Stopped
    在这里插入图片描述

  • 执行命令:jobs -l,可以显示后台任务进程号
    在这里插入图片描述

  • 三种任务状态:Running, Stopped, Killed

  • 执行命令:pstree -aup,查看进程树的sshd部分
    在这里插入图片描述

  • 利用fg命令可以将后台任务切换到前台,注意每次发布fg命令,只能将处于任务栈顶的后台任务(编号后是“+”的后台任务)切换到前台进行处理,然后栈顶的下一个任务就成为新的栈顶任务,其编号后的“-”就会变成“+”。

  • 发布一次fg命令
    在这里插入图片描述

  • 进入末行模式,输入q,不存盘退出。
    在这里插入图片描述

  • 执行命令:jobs -l
    在这里插入图片描述

  • 现在,执行fg命令之后,2768这个处于栈顶的后台任务会变成前台任务来处理,但是我们暂时不把该任务切换到前台。我们试着杀死该后台任务。

  • 停止作业:kill -15 2768
    在这里插入图片描述

  • 事实表明,删不掉vim作业,应该使用参数-9
    在这里插入图片描述

  • 再次执行命令:fg
    在这里插入图片描述

  • 小结:通过fg命令,可以不断把栈顶的作业从后台变成前台作业来处理。

三、归纳总结

  • 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。

四、上机操作

  • 形式:单独完成
  • 题目:完成进程管理
  • 要求:按照讲课笔记完成显示进程、杀死进程与作业前后台切换任务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/235577.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能优化算法应用:基于缎蓝园丁鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于缎蓝园丁鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于缎蓝园丁鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.缎蓝园丁鸟算法4.实验参数设定5.算法…

046:vue通过axios调用json地址数据的方法

第046个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

企业微信应用模板消息

是在发送应用消息接口的基础上,第三方应用支持一种新的消息类型:模板消息,msgtype指定为template_msg。模板消息是一种固定格式的消息。 注意 - 此消息类型目前仅第三方应用支持,自建应用不支持。服务商需在管理端申请模版。接口…

Maven基础

目录 Maven坐标 坐标简介 主要组成 Maven依赖管理 配置依赖 依赖简介 配置依赖 依赖传递 依赖传递简介 排除依赖 依赖范围 生命周期 生命周期简介 执行指定生命周期 Maven坐标 坐标简介 Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资…

NSSCTF web刷题记录7

文章目录 [SDCTF 2022]CURL Up and Read[NUSTCTF 2022 新生赛]Translate [SDCTF 2022]CURL Up and Read 考点:SSRF 打开题目发现是curl命令,提示填入url 尝试http://www.baidu.com,成功跳转 将url的字符串拿去解码,得到json格式数…

LVGL | Demo实例使用说明

LVGL | Demo实例使用说明 时间:2023年12月10日21:51:17 文章目录 LVGL | Demo实例使用说明Demos for LVGLAdd the examples to your projectsDemosWidgetsMusic playerKeypad and encoderBenchmarkStress Contributing Demos for LVGL Add the examples to your p…

做题总结 59. 螺旋矩阵 II

跟着代码随想录顺序到这题,不会做。不知道怎么才能实现。 PS:我是用 java实现的。 题目:给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 总结思路为&am…

Android音量调节参考一

基于android 9平台分析。 在Android系统中,默认的设备(phone等)音量都是分开控制的,这些包括媒体、铃声、闹铃、蓝牙、通话通过音频流来区别不同的音量类型。每种流类型都定义最大音量、最小音量及默认音量,Android 9定了了11中音频流类型&am…

Shell 常用命令详解-上

Shell 常用命令详解-上 1.目录查阅相关命令2.文件操作相关命令 1.目录查阅相关命令 ll 命令 命令描述:ll命令用于显示指定工作目录下的内容。 命令格式:ll [参数] [目录名]。 参数说明: 参数说明-a显示所有文件及目录(包括隐藏文…

Modelscope Agent初体验与思考

背景:LLM → \to → Agent ChatGPT为代表的大语言模型就不用过多的介绍了,ChatGPT很强大,但是也有做不到的东西。 例如: 实时查询问题:实时的天气,地理位置,最新新闻报道,现实世…

基于ssm保险业务管理系统设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本保险业务管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

手动搭建koa+ts项目框架(基础)

文章目录 前言一、TS配置文件1、全局安装TypeScript2、项目根目录创建Typescript配置文件 二、项目初始化配置文件(package.json)1、初始化配置文件2、安装依赖 三、开启简单的服务API入口文件新增脚本 总结如有启发,可点赞收藏哟~ 前言 为什…

外贸开发信主题行写法?邮件的主题怎么写?

如何写高点击率的外贸开发信主题行?推荐的电子邮件主题行有哪些? 外贸开发信如何设计一个引人注目的主题行,成为了外贸从业者需要深入思考的问题。在本文中,蜂邮将探讨外贸开发信主题行的写作方法,以确保您的邮件能够…

Stable Diffusion这样的文本-图像生成模型有记忆吗?

Stable Diffusion扩散模型作为生成高质量图像的先进模型,却伴随着对训练数据的记忆化倾向,引发了隐私和安全性的担忧。AIGCer分享一篇分析该现象的文章,通过两个案例研究深入挖掘了文本复制现象,旨在为未来生成模型的改进提供重要…

调试备忘录-NTC电阻的使用(教程 + 代码)

软件环境:CodeWarrior 11.1 硬件环境:NXP S9KEAZ64A 传感器参数:NTC热敏电阻(R25 50k,B25-50 3950) 写在前面 最近做小项目需要用到NTC电阻,因此写一个调试备忘录记录下。 什么是NTC电阻? NTC热敏电阻就是负温度…

【CiteSpace】引文可视化分析软件CiteSpace下载与安装

CiteSpace 译“引文空间”,是一款着眼于分析科学分析中蕴含的潜在知识,是在科学计量学、数据可视化背景下逐渐发展起来的引文可视化分析软件。由于是通过可视化的手段来呈现科学知识的结构、规律和分布情况,因此也将通过此类方法分析得到的可…

JMS(Java Message Service)使用指南

介绍 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。它是一…

1631. 最小体力消耗路径

一、题目 1、题目描述 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意…

分布式事务Seata(别名Seta)(持续学习中)

1.为什么学习他? 当一台机器的时候,只需要本地事务回滚就好了,还有MonogoDB最好不要放敏感数据,特别是旧的版本,没有事务功能(ACID), 分布式事务,也是属于多线程问题,就是把多台机器变成一台机器(他拥有更多线程,但是也要考虑网络问题),redis在一台机器是单线程的,但是多台机器…

Playground v2:a new leap in creativity

https://huggingface.co/playgroundai/playground-v2-1024px-aesthetichttps://huggingface.co/playgroundai/playground-v2-1024px-aestheticPlayground v2:超越SDXL的模型来了 - 知乎Playground团队刚刚发布了新的文生图模型Playground v2,它是基于SDX…