IPC_信号量

问题的引入

  • 如果有两个或两个以上的任务(进程/线程,并发的实体),去访问同一个共享资源(硬件上的,软件上的),那么我们必须要保证这个共享资源有序访问,否则会产生不可预知的后果。
例子:
important_i = 5
func()
{important_i++;
} 

有两个实例任务,调用了func()这个函数,那么请问,important_i最后的值是什么?
7 -> 有可能
8 -> 有可能,不是我们期望的结果
这种情况就不是有序访问,是有问题的,所以我们需要对这个共享资源进行某种方式的保护,以使它被有序的访问。---------避免竞争

  • 分析:并发=>竞争=>共享资源的非法访问=>程序行为异常…
    • 解决办法:
    • 能不能不要并发?那肯定不行。在保留并发的前提下,“避免竞争”=>访问共享资源时,严格串行!!!!

信号量机制

  • 信号量是个什么东西??
  • 信号量的作用是什么?
  • 为什么需要信号量??
  • 信号量是怎么样达到目的的??
  • 信号量(semaphore)是一种用于提供不同进程间或一个进程内部不同的线程间同步的一种机制。

    • 进程/线程,任务:并发的实体
    • “同步”:并发的实体间,相互等待相互制约,有序的,有条件的访问
  • 信号量就是为了保护共享资源,让共享资源有序访问的一种机制。

  • 信号量目标:为了保护共享资源,使共享资源有序的访问

  • 信号量是我们程序界最高尚的一个东西,因为它不是为了自己而存在的,是为了别人(它保护的对象,共享资源)而存在,“保镖”

  • 什么时候使用信号量?

    • 有保护对象时,才需要信号量
    • 首先要搞清楚,谁需要保护?保护谁?
    • 一个被保护的对象,需要一个信号量

如何来保护呢?

  • “保护”是指:让这个被保护的对象(共享资源)有序访问。如:“互斥”“共享资源”:大家都访问的资源。

  • 信号量机制其实是程序员之间的一种约定,用来保护共享资源的,比如说进程A和进程B,都要访问一个互斥设备,那么我们可以用一个信号量来表示能不能访问该设备,然后每个进程访问该设备时,先去访问信号量,如果能访问设备则先把信号量设成“NO”,然后再去访问该互斥设备,访问完互斥设备,然后再把信号量改成“YES”。

  • 互斥的共享资源/不互斥的共享资源

    • 互斥:同时只允许一个进程/线程 访问
    • 不互斥:同时允许点个进程/线程 访问
  • 在访问共享资源前,先去判断 共享资源是否能访问?

  • Lock

    • ----能访问:你就获取了该信号量(变成“不可访问”),则进入下面的代码
    • ----不能访问:wait,直到信号量变成“能访问”
    • …//访问共享资源的代码区域,—>“临界区”
    • 在访问完共享资源,要把信号量释放(变成“能访问”)
  • unlock


信号量是如何实现的呢?

  • 信号量:大家都可以访问的 一个整数

  • 一个进程或者线程可以在某个信号量上执行如下三种操作:

创建(create)

  • 创建一个信号量:这还要求调用者指定信号量的初始值。初始值表示该信号量保护的共享资源,可以同时被多少个任务访问。
    • sem --> 5 表示此刻有五个进程或线程去同时访问它所保护的资源
    • sem --> 1 表示只有一个进程或者线程可以去访问它所保护的资源,“互斥信号量”

等待(wait)

  • 该操作会测试这个信号量的值,如果其值<=0,那么会等待(阻塞),一旦其值>0,这个时候,将它-1,并且继续往下执行临界区的代码,其函数实现类似于如下代码:
 while(semaphor_value <= 0){sleep;//wait}semaphor_value--;    //表示该进程或线程,获取了该信号量//上述必须必须上“原子操作”:不允许有两个及以上的进程同时进入。//.....以下代码,获取了该信号量,就可以访问该信号量所保护的资源啦。
  • P操作:proberen(尝试),荷兰语
    * down
    * lock 上锁

    PV操作是原子操作,不允许被打断!!!!!

释放(+1)

  • 该操作将信号量的值 +1 , 其函数实现类似于如下代码:
     semaphore_value++//原子操作V操作:verhogen(增加),荷兰语upunlock 解锁

信号量保护的目标是通过:在临界区的前面加上一个 P操作 ,在临界区的会面加上一个 V操作。来实现


  • 思考

  • 1、在遇到“共享资源”在不同的进程或线程中访问的时候

    • 考虑“避免竞争“
    • (1)明确谁谁共享资源,即谁是需要保护的对象
    • (2)确定”临界区“:操作共享资源的代码区域,我们称之为临界区。
    • (3)一个保护的对象,就需要一个信号量。
      • P
      • 临界区
      • V
  • 2、现在有五个资源A,B,C,D,E需要保护,设计师决定用一个信号量S来同时保护这五个资源。

  • P(s)

  • ----A

  • V(s)

  • P(s)

  • ----B

  • P(s)

  • 请问这种设计有什么问题?

  • 可以达到“保护”互斥访问的目的,但是降低了并发度,A和B本身可以同时访问,。。。

死锁

  • 所谓的死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵局状态时,若无外力作用,它们都无法再向前推进。因此我们举个例子来描述,如果此时有一个线程A,按照先锁a在获得锁b的顺序获得锁,而在此同时又有另外的一个线程B,按照先锁b在锁a 的顺序获得锁。A拿完a锁之后去拿b锁。但是b同时已经把b锁拿走了,那么A就在等b锁,而B在等a锁,就会陷入无限等待!!!

  • 死锁产生的四个必要条件

    • 1、互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。
    • 2、请求和保持条件:当进程因请求资源而阻塞时,对已获得得资源保存不放。
    • 3、不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。
    • 4、环路等待条件:在发生死锁时,必然存在一个进程-资源的环形链。
  • 预防死锁

    • 1、(破坏请求条件)资源一次性分配:一次性分配所有资源,这样就不会再有请求了
    • 2、(破坏请保存条件)只要有一个资源得不到分配,也不给这个进程分配其他的资源
    • 3、(破坏不可剥夺条件)即当某进程获得部分资源,但得不到其他资源,则释放已占有资源
    • 4、(破坏环路等待条件)系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反
  • 避免死锁

    • 预防死锁的几种策略,会严重地损害系统性能。因此在避免死锁时,要施加较弱的限制,从而获得 较满意的系统性能。由于在避免死锁的策略中,允许进程动态地申请资源。因而,系统在进行资源分配之前预先计算资源分配的安全性。若此次分配不会导致系统进入不安全的状态,则将资源分配给进程;否则,进程等待。其中最具有代表性的避免死锁算法是银行家算法。
    • 银行家算法:首先需要定义状态和安全状态的概念。系统的状态是当前给进程分配的资源情况。因此,状态包含两个向量Resource(系统中每种资源的总量)和Available(未分配给进程的每种资源的总量)及两个矩阵Claim(表示进程对资源的需求)和Allocation(表示当前分配给进程的资源)。安全状态是指至少有一个资源分配序列不会导致死锁。当进程请求一组资源时,假设同意该请求,从而改变了系统的状态,然后确定其结果是否还处于安全状态。如果是,同意这个请求;如果不是,阻塞该进程知道同意该请求后系统状态仍然是安全的。
  • 检测死锁

    • 首先为每个进程和每个资源指定一个唯一的号码;
    • 然后建立资源分配表和进程等待表。
  • 解除死锁:

    • 当发现有进程死锁后,便应立即把它从死锁状态中解脱出来,常采用的方法有:

      • 剥夺资源:从其它进程剥夺足够数量的资源给死锁进程,以解除死锁状态;
      • 撤消进程:可以直接撤消死锁进程或撤消代价最小的进程,直至有足够的资源可用,死锁状态.消除为止;所谓代价是指优先级、运行代价、进程的重要性和价值等。

linux提供的信号量API

system V 信号量
Posix 信号量

system V信号量过程:ftok-------->生存一个System V ipc对象的key-----semget----->创建或者打开一个System V信号量--------- >P/V操作-------->删除该信号量

  • System V信号量:
    • 计数信号量集(计数信号量集)。
    • 计数信号量:该信号量的值可以是 > 1的值,它所保护的共享资源允许带个任务同时访问它。
      • 计数值1,0 =》互斥信号量
    • 互斥信号量:该信号量的值要么上1,要么是0,它所保护的共享资源同一时刻只允许一个任务去访问它。
    • 为什么System V要把信号量,弄一个信号量集(信号量数组)呢?

API函数接口

ftok 用来创建一个System V IPC对象 的 key

key: 最主要的特征是什么?
唯一性。

在这里插入图片描述

在这里插入图片描述

  • key_t ftok(const char *pathname, int proj_id);

    • pathname: 一个文件系统中的路径名(要存在的)

    • proj_id: 整数。一般用工程的代号。

    • 返回值:

      • 成功生成一个唯一的 system v ipc的key(key_t)
      • 失败返回-1, 同时errno被设置。

semget 用来创建或打开一个System V信号量

  • int semget(key_t key , int nsems ,int semflg)

  • key :system v ipc对象的key(一般由ftok是返回值)

  • nsems :你要创建的信号量集中的信号量的数量。如果我们不是创建而是打开一个已经存在的信号量集,此处参数可以指定为0,一旦创建完一个信号量集,其信号量的个数就不能改变了。

  • semflg :

    • (1)创建
      • IPC_CREAT|权限位
    • (2)打开
      • 0
  • 返回值:

    • 成功返回system v信号量集的id
    • 失败返回-1,同时errno被设置
  • the valuex of the semaphores in a newly created set are indeterminate. 在一个新创建的信号量集中的信号量的值,是不确定的!!!

  • so,我们在新创建一个信号量集后,马上指定他们的初始值!!!!


semctl 控制操作(设置或获取信号量集中某个或某些信号量的值)

  • int semctl(int semid , int semnum , int cmd ,arg)
  • semid : 要操作的信号集的id(semget返回值)
  • semnum : 要操作的信号量集中的哪个信号量,就是信号量数组的下标,从0开始,0,1,2,3,4,5,。。。。,nsems-1
  • cmd:命令号,常用的有:
    • GETVAL:获取semnum个信号量的值
    • SETVAL:设置第semnum个信号量的值
    • GETALL:获取这个信号量 集中所有信号量的值
    • SETALL:设置这个信号量集中所有信号量的值
    • IPC_RMID:删除这个信号量集
  • arg:针对不同的命令行,第四个参数不一样。
    • cmd == IPC_RMID ,第四个参数不要。

      • 如:semctl(semid,0,IPC_RMID);
    • cmd == GETVAL,第四个参数也不要,函数返回值(semctl)就表示哪个信号量集中第二个信号量的值

    • cmd == SETVAL,第四个参数应该为int,表示要设置信号量的值

      • 如:
        • int sem_val = 1;
        • int r = semctl(semid,1,SETVAL,sem_val);
        • 用来设置semid指定信号量集中第二个信号量的值为1;
    • cmd == GETALL ,第四个参数应该为unsinged short vals[],这个数组是用来保存获取的每个信号量的值的。

      • 如:unsigned short vals[10];
        • int r = semctl(semid,0,GETALL,vals);
        • //vals[0]保存的是 第一个信号量的值
        • //vals[1]保存的是 第二个信号量的值
        • //。。。。。。
    • cmd ==SETALL,第四个参数应该为unsinged short vals[],这个数组是用来设置的每个信号量的值的

      • 如:
        • unsigned short vals[10] = {1,1,1,1,1,1,1,1,1};
        • int r = semctl(semid,0,SETALL,vals);
        • //第一个信号量的值 就为vals[0] 1
        • //…
  • 返回值:
    • 根据不同命令,semctl返回值含义不一样。
    • cmd == GETVAL , 返回值就是表示要获取的那个信号量的值

semop : System V 信号量的P/V操作

  • 这里要先明白一个结构体,在System V的信号量P/V操作,用一个结构体strucy sembuf来描述的。
struct sembuf
{unsigned short     sem_num;  //要进行P/V操作的信号量在信号量集中的编号(下标)short   sem_op;   /* semaphore operation */>0 :  => V操作, up/unlock=0 :  try 一  try, 看是否会阻塞<0 :  => P操作, down/locksemval(信号量的值) = 原semval + sem_opshort    sem_flg;  /* operation flags */// 0 : 默认,如果 P操作获取不了,则会阻塞PC_NOWAIT: 非阻塞,不等待如果是P操作,能获取则获取,不能获取则走人(返回-1,)		SEM_UNDO: 撤销!!!!!!为了防止进程带锁退出if you set SEM_UNDO这个标志,内核会额外记录该进程对该信号量的所有的p/v操作,然后再该进程退出时,会还原对该信号的操作。如:p  v  p  v   kill-1 +1 -1 +1 0p  v  p  kill-1 +1 -1 (-1)  还原 +1};

struct sembuf表示的对一个信号量的P/V操作
如果对两个信号量的P/V操作,就需要对应两个struct sembuf
如果对多个信号量的P/V操作,就需要对应多个struct sembuf


  • int semop(int semid , struct sembuf *sops , unsigned nsops);

    • semid : 要操作的是哪个信号量集
    • sops : struct sembuf的数组。struct sembuf[0]->表示第0个信号量的P/V操作…
    • nsops:第二个参数sops数组中的元素个数
  • 返回值:

    • 成功返回0
    • 失败返回-1,同时error被设置。
  • semop可能会阻塞当前进程/线程,如果是P操作,获取不了的时候,且IPC_NOWAIT没有设置时,会等待。“死等”。(我不知道为什么我的mac上找不到semtimedop这个函数的头文件和函数声明)

  • int semtimedop(int semid, struct sembuf *sops, size_t nsops,
    const struct timespec *timeout);

  • semtimedop和 semop的区别在于:

  • semtimedop 可以设置一个等待时间,在该时间内,按照规则来进行,超过时间,就不会等待

struct timespec
{long tv_sec;//秒long tv_nsec;//纳秒
};
//假设你要等待 2秒钟 零 200纳秒struct timespec tv;
tv.tv_sec = 2;
tv.tv_nsec = 200;

关键:

1、明确共享资源

2、明确临界区

3、临界区前P操作,临界区后V操作


Posix信号量

单个信号量

  • 单个信号量分为了有名信号量和无名信号量

无名信号量

  • 没有名字,无名信号量存在于内存中。无名信号量, “基于内存的信号量”,如果这段内存在一个“内核的共享内存中”,进程可以访问,线程也可以访问。 => 既可以用于进程间同步/互斥,也可以用于线程间的同步/互斥。如果这段内存在一个进程的地址空间,此时,只能用于该进程内部所有线程的同步/互斥。POSIX 信号量:sem_t 来描述 POSIX信号量。

有名信号量

  • 可以用于进程间或线程间 同步/互斥在文件系统中有一个入口(有一个文件名,inode),信号量的对象(值)却是存在于内核。=》既可以用用于任意进程间,也可以用于线程间的同步。

创建或打开一个POSIX信号量

  • POSIX信号量用类型sem_t来表示,不管是有名信号量,还是无名信号量,都是用sem_t来表示
  • 有名信号量:

  • sem_t *sem_open(const char *name, int oflag);
  • sem_t *sem_open(const char *name, int oflag,mode_t mode, unsigned int value);
    • name:要创建或打开的POSIX有名信号量在文件系统中的路径名:
    • 以‘/’开头的路径名(路径名中只能有一个/)
    • oflag:
      • (1)打开:0
      • (2)创建:O_CREAT
    • 第三个参数和第四个参数当你是创建一个有名信号量时,才需要
    • mode:创建权限位,有两种方式指定:
      • (1)S_IRUSR
      • (2)0664
    • value:指定创建的有名信号量的初始值。
    • 返回值:
      • 成功返回一个sem_t指针,指向POSIX有名信号量
      • 失败返回一个SEM_FAILED,同时errno被设置。

Link with -pthread. -l pthread

  • 无名信号量:
  • (1)定义或分配一个无名信号量 sem_t
    • sem_t t1;
    • sem_t *psem = malloc(sizeof(sem_t));
  • (2)初始化无名信号量 sem_init

POSIX信号量 P/V操作

P操作

  • “死等”

  • int sem_wait(sem_t *sem);

  • 返回值:

    • 返回0,获取了该信号量
    • 返回-1,出错,同时errno被设置
  • try-try:非阻塞版本 “能获取则获取,不能获取则返回-1”

  • int sem_trywait(sem_t *sem)

    • 返回值:
    • 返回0,获取了该信号量
    • 返回-1,出错,同时errno被设置
  • “限时等待”:

  • abs_timeout:指定等待超时的绝对时间。

  • “绝对时间”=当前绝对时间+相对时间

Link with -pthread

例子:struct timespec ts;clock_gettime(CLOCK_REALTIME , &ts);  //获取当前时间ts.tv_sec +=5;ts.tv_nsec +=3000000000;{ts.tv_sec++;ts.tv_nsec-=1000000000;}int r = sem_timedwait(sem,&ts);

V操作

其他操作

sem_getvalue用来获取一个POSIX信号量的值


POSIX有名信号量的 关闭和删除 操作

  • sem_close:用来关闭一先·个POSIX有名信号量
  • sem_unlink:用来删除一个POSIX有名信号量

POSIX无名信号量的 销毁操作

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 【常见排序算法】

    常用的排序算法冒泡排序选择排序插入排序冒泡排序 for(int i 0; i < nums.length; i){for(int j 0; j < nums.length - i - 1; j){if(nums[j] > nums[j 1]){int temp nums[j];nums[j] nums[j 1];nums[j 1] temp;}}}选择排序 for(int i 0; i < nums.length…...

    2024/4/25 18:57:04
  2. PAT Basic Level 1032 挖掘机技术哪家强

    为了用事实说明挖掘机技术到底哪家强&#xff0c;PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。 输入格式&#xff1a; 输入在第 1 行给出不超过 105 的正整数 N&#xff0c;即参赛人数。随后 N 行&#xff0c;每行给出一位参赛者的信息和成绩…...

    2024/5/5 4:57:41
  3. Mysql经典45道题(数据源)

    数据表关系表名表字段字段含义学生表StudentSid学生编号Sname学生姓名Sage出生年月Ssex学生性别成绩表SCSid学生编号Cid课程编号score分数课程表CourseCid课程编号Cname课程名称Tid教师编号教师表TeacherTid教师编号Tname教师姓名...

    2024/5/5 13:41:44
  4. 如何理解垃圾回收呢?

    1、垃圾回收概述 概述 &#xff08;1&#xff09;Java和C语言的区别&#xff0c;就在于垃圾收集奇数和内存动态分配上&#xff0c;C语言没有垃圾收集技术&#xff0c;需要程序员手动的收集。 &#xff08;2&#xff09;垃圾收集&#xff0c;不是Java语言的伴生产物。早在1960…...

    2024/4/13 8:12:40
  5. [学习笔记] Linux 下配置Ngnix的SSL证书

    数字证书管理服务/SSL 证书 之前为了方便同事测试微信小程序&#xff0c;搭建了基于CentOS的预发布环境&#xff0c;.Net5 程序也已经部署好在上面&#xff0c;在公网上可以通过http协议的临时域名(jevonsflash.xxx.net)访问到后台Api。 然而小程序的正式线上版本&#xff0c;…...

    2024/4/19 19:53:20
  6. TensorRT之python版(1):安装

    随着TensorRT8.0版本的发布&#xff0c;windows下也正式支持Python版本了&#xff0c;跟紧NVIDIA的步伐&#xff0c;正式总结一份TensorRT-python的使用经验。 一、底层库依赖 在安装TensorRT前&#xff0c;首先需要安装CUDA、CUDNN等NVIDIA的基本库&#xff0c;如何安装&…...

    2024/4/13 8:12:10
  7. 微型计算机系统的主要性能指标

    1、字长&#xff1a;指计算机内部一次可处理的二进制位数。 2、存储器容量&#xff1a;一般以字节为单位来表示。 3、运算速度&#xff1a;有几种不同的运算速度的计算方法&#xff1a; 1&#xff09;MIPS方法&#xff1a;以每秒能执行几百万条指令来衡量。 2&#xff09;最短指…...

    2024/4/19 13:32:39
  8. ffmpeg学习日记21-缓存AVPacket数据

    ffmpeg学习日记21-缓存AVPacket数据 avpacket中存储的是压缩过后的数据&#xff0c;数据量并不是很大&#xff0c;在合成视频之前&#xff0c;需要将该部分数据存在内存中&#xff0c;待合成使用。 创建一个存储器 std::list<AVPacket *> deque;av_read_frame函数读出…...

    2024/5/5 9:50:11
  9. lazada爆款打造背后的秘密,学会这两招,日销千单so easy

    新年伊始&#xff0c;万象更新。今年立下的爆单Flag咱一定得实现它&#xff01;本篇博主将献上运营干货&#xff0c;揭开那些爆款商品和热卖店铺背后的秘密。精细化选品打造高效引流标题两大攻略&#xff0c;助你2022年销量长虹&#xff0c;日销千单so easy&#xff01; 想要打…...

    2024/4/13 8:12:25
  10. SSH用免密登录远程服务器

    直接在服务器上操作 useradd testpasswd testsu test 在ssh目录里创建密钥 cd ~/.ssh/ ssh-keygen -t rsa -f test_rsa // -f 是给密钥起名字&#xff08;yilin&#xff09; ls查看目录 authorized_keys yilin_rsa yilin_rsa.pub 把公钥放到authorized_keys&#xff0c;没有…...

    2024/4/13 8:13:15
  11. 财报文本处理相关资料

    pdf文件处理 https://blog.csdn.net/stay_foolish12/article/details/112847712...

    2024/5/5 10:09:55
  12. 1210 班费问题(宁波大学OJ)

    题目描述 期末了&#xff0c;班长CoCo决定将剩余班费x元钱用于购买若干支钢笔进行奖励。商店里有三种钢笔&#xff0c;单价分别为6元、5元和4元。小Q想买尽量多的笔&#xff0c;并且不再剩余钱。请帮小Q制定出一种买笔的方案。若无解&#xff08;指所有方案都有剩余钱&#xff…...

    2024/4/13 8:12:55
  13. Spring调用对应参数构造器创建对象

    在配置文件创建对象时&#xff0c;使用constructor-arg子标签 <bean>子标签的 property 调用set方法来赋值constructor-arg 调用对应的构造器赋值创建独享文章中使用的实体类为上一章内容&#xff0c;详情查看 例&#xff1a; 1&#xff1a;Spring配置文件 <?xml …...

    2024/4/8 18:24:57
  14. 3090显卡 爆显存调试

    可能存在的原因 每每轮到dataloader加载数据时&#xff1a; for epoch in range(start_epoch, end_epoch):for i, data in enumerate(trainloader):dataloader一次性创建num_worker个worker&#xff0c;&#xff08;也可以说dataloader一次性创建num_worker个工作进程&#x…...

    2024/5/5 15:41:46
  15. 10-grom-05-高级查询

    1. Order 1.1 简单使用 age字段降序&#xff0c;name字段升序&#xff08;默认&#xff09; db.Order("age desc, name").Find(&users)SELECT * FROM users ORDER BY age desc, name;或者写成 db.Order("age desc").Order("name").Find(&a…...

    2024/5/5 15:30:19
  16. 牛客网题目单词倒排(c语言)

    链接&#xff1a;单词倒排_牛客题霸_牛客网 (nowcoder.com) 题目描述&#xff1a; 对字符串中的所有单词进行倒排。 说明&#xff1a; 1、构成单词的字符只有26个大写或小写英文字母&#xff1b; 2、非构成单词的字符均视为单词间隔符&#xff1b; 3、要求倒排后的单词间…...

    2024/4/15 4:10:03
  17. dede插件-免费dede插件大全

    怎么利用dede插件快速做好网站SEO优化&#xff0c;获得关键词排名以及流量&#xff0c;网站优化主要坚持更新高质量内容在对网站关键词进行拓展之后&#xff0c;接下来就是每天坚持定时定量地更新高质量的文章了。因为&#xff0c;现在搜索引擎十分注重文章内容的质量问题了&am…...

    2024/5/5 13:13:05
  18. Shell脚本三剑客之Sed

    目录 sed的介绍 sed的工作流程 sed工作原理 sed命令常见用法 语法结构 常见的选项 常见的操作 sed用法示例 (1)输出符合条件的文本(p表示正常输出) (2)册除符合条件的文本(d) (3)替换符合条件的文本 (4)迁移符合条件的文本 (5)使用脚本编辑文件 (6)sed直接操作文…...

    2024/5/5 11:01:32
  19. 网页前端第六次培训笔记

    1.运算符 2.控制语句 3.数组 4.函数 资料来源&#xff1a;优极限 视频教学&#xff1a;https://www.bilibili.com/video/BV1sf4y1k7dr?p20...

    2024/5/5 11:28:26
  20. MySQL语言学习路线

    五、DQL语言 基础查询条件查询排序查询常见函数分组函数分组查询连接查询子查询分页查询union联合查询 六、DML语言的学习 插入语句修改语句删除语句 七、DDL语言的学习 库和表的管理常见数据类型介绍常见约束八、TCL语言学习 事务和事务的处理 九、视图的讲解 十、存储过程…...

    2024/4/13 8:13:10

最新文章

  1. 【RYG】Python技能练习场—查漏补缺(一)

    1、列表删除元素 remove() 方法&#xff1a;该方法可以删除列表中指定的元素。例如&#xff1a;my_list.remove(3) 将删除列表中第一个出现的元素3。 pop() 方法&#xff1a;该方法可以删除指定位置的元素&#xff0c;并返回被删除的元素。例如&#xff1a;my_list.pop(0) 将…...

    2024/5/9 13:31:43
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. javaWeb网上零食销售系统

    1 绪 论 目前&#xff0c;我国的网民数量已经达到7.31亿人&#xff0c;随着互联网购物和互联网支付的普及&#xff0c;使得人类的经济活动进入了一个崭新的时代。淘宝&#xff0c;京东等网络消费平台功能的日益完善&#xff0c;使得人们足不出户就可以得到自己想要的东西。如今…...

    2024/5/8 15:41:52
  4. Docker Desktop+WSL2安装到自定义路径

    现在大多数软件实在太“流氓”了&#xff0c;在安装过程中&#xff0c;根本不让你选择安装路径&#xff0c;默认安装到$HOME下&#xff08;windows C盘&#xff09;&#xff0c;随着软件的使用增多&#xff0c;可能磁盘空间不够&#xff0c;这个时候就想着&#xff0c;看看某些…...

    2024/5/8 5:04:44
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/9 7:32:17
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57