当前位置: 首页 > news >正文

java模拟进程调度

先来先服务+优先级调度+短作业优先调度+响应比优先调度

代码

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;class Main {static class tasks{int id;//序号char jinchengname;//进程名int jinchengId;//double arriveTime;//提交时间double runningTime;//运行时间int youxianshu;//优先数double jinrushuchujingshijian;//进入输出#时间double startRunningTime;//开始运行时间double shangxvyunxingshijian;//尚需运行时间double runningEndTime;//运行结束时间double zhouzhuanshijian;//周转时间double saiquanzhouzhuanshijian;//带权周转时间int order;//运行次序double xingyingbi;//响应比public int getId() {return id;}public void setId(int id) {this.id = id;}public char getJinchengname() {return jinchengname;}public void setJinchengname(char jinchengname) {this.jinchengname = jinchengname;}public int getJinchengId() {return jinchengId;}public void setJinchengId(int jinchengId) {this.jinchengId = jinchengId;}public double getArriveTime() {return arriveTime;}public void setArriveTime(double arriveTime) {this.arriveTime = arriveTime;}public double getRunningTime() {return runningTime;}public void setRunningTime(double runningTime) {this.runningTime = runningTime;}public int getYouxianshu() {return youxianshu;}public void setYouxianshu(int youxianshu) {this.youxianshu = youxianshu;}public double getJinrushuchujingshijian() {return jinrushuchujingshijian;}public void setJinrushuchujingshijian(double jinrushuchujingshijian) {this.jinrushuchujingshijian = jinrushuchujingshijian;}public double getStartRunningTime() {return startRunningTime;}public void setStartRunningTime(double startRunningTime) {this.startRunningTime = startRunningTime;}public double getShangxvyunxingshijian() {return shangxvyunxingshijian;}public void setShangxvyunxingshijian(double shangxvyunxingshijian) {this.shangxvyunxingshijian = shangxvyunxingshijian;}public double getRunningEndTime() {return runningEndTime;}public void setRunningEndTime(double runningEndTime) {this.runningEndTime = runningEndTime;}public double getZhouzhuanshijian() {return zhouzhuanshijian;}public void setZhouzhuanshijian(double zhouzhuanshijian) {this.zhouzhuanshijian = zhouzhuanshijian;}public double getSaiquanzhouzhuanshijian() {return saiquanzhouzhuanshijian;}public void setSaiquanzhouzhuanshijian(double saiquanzhouzhuanshijian) {this.saiquanzhouzhuanshijian = saiquanzhouzhuanshijian;}public int getOrder() {return order;}public void setOrder(int order) {this.order = order;}public tasks(int id, char jinchengname, int jinchengId, double arriveTime, double runningTime, int youxianshu) {this.id = id;this.jinchengname = jinchengname;this.jinchengId = jinchengId;this.arriveTime = arriveTime;this.runningTime = runningTime;this.youxianshu = youxianshu;}public double getXingyingbi() {return xingyingbi;}public void setXingyingbi(double xingyingbi) {this.xingyingbi = xingyingbi;}}public static void main(String[] args) {List<tasks> tasksList=new ArrayList<>();System.out.println("请输入task个数");Scanner sc=new Scanner(System.in);int n=sc.nextInt();for (int i = 0; i < n; i++) {System.out.println("请依次输入第"+(i+1)+"个进程的序号 进程名 进程号 到达时间 运行时间 优先数");int id=sc.nextInt();char jingchengname=sc.next().charAt(0);int jingchengid= sc.nextInt();double arrivetime= sc.nextDouble();double runningtime= sc.nextDouble();int youxianshu= sc.nextInt();tasksList.add(new tasks(id,jingchengname,jingchengid,arrivetime,runningtime,youxianshu));}//选择调度System.out.println("1.先来先服务");System.out.println("2.优先级调度");System.out.println("3.短作业优先调度");System.out.println("4.响应比高者优先调度");int ch=sc.nextInt();switch (ch){case 1:xianlaixianfuwu(tasksList);break;case 2:youxianjidiaodu(tasksList);break;case 3:duanzuoyeyouxian(tasksList);break;case 4:xiangyingbigaoyouxian(tasksList);break;}}public static void xianlaixianfuwu(List<tasks> tasksList) {//先来先服务Comparator<tasks> comparator=Comparator.comparing(tasks:: getArriveTime);tasksList.sort(comparator);int order=0;double time=tasksList.get(0).arriveTime;//此时时间点for (tasks tasks : tasksList) {order++;tasks.setOrder(order);if(time>= tasks.arriveTime){tasks.startRunningTime=time;}else {time=tasks.arriveTime;//这里少些一句这个else 才看到 补上了}time+= tasks.runningTime;tasks.runningEndTime=time;tasks.zhouzhuanshijian=tasks.runningEndTime-tasks.arriveTime;tasks.saiquanzhouzhuanshijian=tasks.zhouzhuanshijian / tasks.runningTime;System.out.println("序号\t"+"进程名\t"+"进程号\t"+"到达时间\t"+"运行时间\t"+"优先数\t"+"开始运行时间\t"+"运行结束时间\t"+"周转时间\t"+"带权周转时间(左->右)");System.out.println(tasks.id+" "+tasks.jinchengname+" "+tasks.jinchengId+" "+ tasks.arriveTime+" "+ tasks.runningTime+" "+ tasks.youxianshu+" "+tasks.startRunningTime+" "+ tasks.runningEndTime+" "+tasks.zhouzhuanshijian+" "+tasks.saiquanzhouzhuanshijian+" "+ tasks.getOrder());}}public static void youxianjidiaodu(List<tasks> tasksList) {List<tasks> tasksyiwanchengList=new ArrayList<>();//找最先的到达的作为时间time的开始,完成后更新time+=runningtimeComparator<tasks> comparator=Comparator.comparing(tasks:: getArriveTime);tasksList.sort(comparator);//tasksyiwanchangList.add(task001)tasksyiwanchengList.add(tasksList.get(0));double time=tasksList.get(0).arriveTime;//此时时间点tasksList.get(0).startRunningTime=time;time+=tasksList.get(0).runningTime;tasksList.get(0).runningEndTime=time;//tasksList.del(task001)删除最先的到达的tasktasksList.remove(0);//list.for执行下面这行的操作//在剩下的task里&&arrivetime<time也就是已经到达但还没开始的任务里,选执行优先级最高的执行,更新time+=runningtimeint n= tasksList.size();for (int i = 0; i < n; i++) {//每次for里都要完成且只完成一个任务//将未完成的tasks按优先数排序Comparator<tasks> comparator2=Comparator.comparing(tasks:: getYouxianshu);tasksList.sort(comparator2);int flag=0;for (tasks tasks : tasksList) {if(tasks.arriveTime<=time){tasks.startRunningTime=time;time+=tasks.runningTime;tasks.runningEndTime=time;tasksyiwanchengList.add(tasks);tasksList.remove(tasks);flag=1;break;}}if (flag==0){//如果全都没到达,直接移除接下来最早到达的Comparator<tasks> comparator3=Comparator.comparing(tasks:: getArriveTime);tasksList.sort(comparator3);tasksList.get(0).startRunningTime=tasksList.get(0).arriveTime;time+=tasksList.get(0).runningTime;tasksList.get(0).runningEndTime=time;tasksyiwanchengList.add(tasksList.get(0));tasksList.remove(0);}}//最后遍历出结果tasksyiwanchengListint order=0;for (tasks tasks : tasksyiwanchengList) {order++;tasks.setOrder(order);tasks.zhouzhuanshijian=tasks.runningEndTime-tasks.arriveTime;tasks.saiquanzhouzhuanshijian=tasks.zhouzhuanshijian / tasks.runningTime;System.out.println("序号\t"+"进程名\t"+"进程号\t"+"到达时间\t"+"运行时间\t"+"优先数\t"+"开始运行时间\t"+"运行结束时间\t"+"周转时间\t"+"带权周转时间(左->右)");System.out.println(tasks.id+" "+tasks.jinchengname+" "+tasks.jinchengId+" "+ tasks.arriveTime+" "+ tasks.runningTime+" "+ tasks.youxianshu+" "+tasks.startRunningTime+" "+ tasks.runningEndTime+" "+tasks.zhouzhuanshijian+" "+tasks.saiquanzhouzhuanshijian+" "+ tasks.getOrder());}}public static void duanzuoyeyouxian(List<tasks> tasksList) {List<tasks> tasksyiwanchengList=new ArrayList<>();//找最先的到达的作为时间time的开始,完成后更新time+=runningtimeComparator<tasks> comparator=Comparator.comparing(tasks:: getArriveTime);tasksList.sort(comparator);//tasksyiwanchangList.add(task001)tasksyiwanchengList.add(tasksList.get(0));double time=tasksList.get(0).arriveTime;//此时时间点tasksList.get(0).startRunningTime=time;time+=tasksList.get(0).runningTime;tasksList.get(0).runningEndTime=time;//tasksList.del(task001)删除最先的到达的tasktasksList.remove(0);//list.for执行下面这行的操作//在剩下的task里&&arrivetime<time也就是已经到达但还没开始的任务里,选作业runningtime最小的执行,更新time+=runningtimeint n= tasksList.size();for (int i = 0; i < n; i++) {//每次for里都要完成且只完成一个任务//将未完成的tasks按作业长短排序Comparator<tasks> comparator2=Comparator.comparing(tasks:: getRunningTime);//那这么的话和优先级相比只改了这一个单词tasksList.sort(comparator2);int flag=0;for (tasks tasks : tasksList) {if(tasks.arriveTime<=time){tasks.startRunningTime=time;time+=tasks.runningTime;tasks.runningEndTime=time;tasksyiwanchengList.add(tasks);tasksList.remove(tasks);flag=1;break;}}if (flag==0){//如果全都没到达,直接移除接下来最早到达的Comparator<tasks> comparator3=Comparator.comparing(tasks:: getArriveTime);tasksList.sort(comparator3);tasksList.get(0).startRunningTime=tasksList.get(0).arriveTime;time+=tasksList.get(0).runningTime;tasksList.get(0).runningEndTime=time;tasksyiwanchengList.add(tasksList.get(0));tasksList.remove(0);}}//最后遍历出结果tasksyiwanchengListint order=0;for (tasks tasks : tasksyiwanchengList) {order++;tasks.setOrder(order);tasks.zhouzhuanshijian=tasks.runningEndTime-tasks.arriveTime;tasks.saiquanzhouzhuanshijian=tasks.zhouzhuanshijian / tasks.runningTime;System.out.println("序号\t"+"进程名\t"+"进程号\t"+"到达时间\t"+"运行时间\t"+"优先数\t"+"开始运行时间\t"+"运行结束时间\t"+"周转时间\t"+"带权周转时间(左->右)");System.out.println(tasks.id+" "+tasks.jinchengname+" "+tasks.jinchengId+" "+ tasks.arriveTime+" "+ tasks.runningTime+" "+ tasks.youxianshu+" "+tasks.startRunningTime+" "+ tasks.runningEndTime+" "+tasks.zhouzhuanshijian+" "+tasks.saiquanzhouzhuanshijian+" "+ tasks.getOrder());}}public static void xiangyingbigaoyouxian(List<tasks> tasksList) {List<tasks> tasksyiwanchengList=new ArrayList<>();//响应比高优先  当每次进程被调度就要重新计算新的响应比//找最先的到达的作为时间time的开始,完成后更新time+=runningtimeComparator<tasks> comparator=Comparator.comparing(tasks:: getArriveTime);tasksList.sort(comparator);//tasksyiwanchangList.add(task001)tasksyiwanchengList.add(tasksList.get(0));double time=tasksList.get(0).arriveTime;//此时时间点tasksList.get(0).startRunningTime=time;time+=tasksList.get(0).runningTime;tasksList.get(0).runningEndTime=time;//tasksList.del(task001)删除最先的到达的tasktasksList.remove(0);//list.for执行下面这行的操作//在剩下的task里&&arrivetime<time也就是已经到达但还没开始的任务里,选执行响应比最高的执行,更新time+=runningtimeint n= tasksList.size();for (int i = 0; i < n; i++) {//每次for里都要完成且只完成一个任务 然后响应比改变 重新计算新的响应比//计算runningendtime 迭代每个任务是下一次就被调的情况得到的tasks.runningendtimefor (tasks tasks : tasksList) {//好像应该time和arrivetime比较 还没到的要不要算响应比去比较啊??//先按照还没来的就不参与响应比的计算tasks.xingyingbi=-1;//为了计算响应比才暂时赋值 后面每次for里都要完成一个任务时才是正式的赋值if (tasks.arriveTime<=time){//给来的任务计算响应比 不来的响应比默认-1tasks.runningEndTime+=(time+ tasks.runningTime);}}//每次重新计算响应比 所以没个任务的zhouzhuanshijian必须在下面的计算前就已经知道tasks.zhouzhuanshijian=tasks.runningEndTime-tasks.arriveTime;for (tasks tasks : tasksList) {tasks.zhouzhuanshijian=tasks.runningEndTime-tasks.arriveTime;//arrivetime已知不用管 runningendtime必须知道tasks.xingyingbi=1+(tasks.zhouzhuanshijian/ tasks.runningTime);}//将未完成的tasks按响应比排序Comparator<tasks> comparator2=Comparator.comparing(tasks:: getXingyingbi).reversed();//在这之前必须把响应比算出来tasksList.sort(comparator2);int flag=0;for (tasks tasks : tasksList) {if(tasks.arriveTime<=time){tasks.startRunningTime=time;time+=tasks.runningTime;tasks.runningEndTime=time;tasksyiwanchengList.add(tasks);tasksList.remove(tasks);flag=1;break;}}if (flag==0){//如果全都没到达,直接移除接下来最早到达的Comparator<tasks> comparator3=Comparator.comparing(tasks:: getArriveTime);tasksList.sort(comparator3);tasksList.get(0).startRunningTime=tasksList.get(0).arriveTime;time+=tasksList.get(0).runningTime;tasksList.get(0).runningEndTime=time;tasksyiwanchengList.add(tasksList.get(0));tasksList.remove(0);}}//最后遍历出结果tasksyiwanchengListint order=0;for (tasks tasks : tasksyiwanchengList) {order++;tasks.setOrder(order);tasks.zhouzhuanshijian=tasks.runningEndTime-tasks.arriveTime;//arrivetime已知不用管 runningendtime必须知道tasks.saiquanzhouzhuanshijian=tasks.zhouzhuanshijian / tasks.runningTime;System.out.println("序号\t"+"进程名\t"+"进程号\t"+"到达时间\t"+"运行时间\t"+"优先数\t"+"开始运行时间\t"+"运行结束时间\t"+"周转时间\t"+"带权周转时间(左->右)");System.out.println(tasks.id+" "+tasks.jinchengname+" "+tasks.jinchengId+" "+ tasks.arriveTime+" "+ tasks.runningTime+" "+ tasks.youxianshu+" "+tasks.startRunningTime+" "+ tasks.runningEndTime+" "+tasks.zhouzhuanshijian+" "+tasks.saiquanzhouzhuanshijian+" "+ tasks.getOrder());}}
}

运行结果

相关文章:

java模拟进程调度

先来先服务优先级调度短作业优先调度响应比优先调度 代码 import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Scanner;class Main {static class tasks{int id;//序号char jinchengname;//进程名int jinchengId;//double a…...

大模型AI在教育领域有哪些创业机会?

大模型AI在教育领域有很多创业机会&#xff0c;尤其是在个性化学习、教学辅助、教育资源优化等方面。以下是一些潜在的创业机会&#xff1a; 个性化学习平台 学习路径定制&#xff1a;根据学生的学习数据与兴趣&#xff0c;为他们设计个性化的学习路径&#xff0c;提供适合的课…...

网页上视频没有提供下载权限怎么办?

以腾讯会议录屏没有提供下载权限为例&#xff0c;该怎么办呢&#xff1f; 最好的办法就是找到管理员&#xff0c;开启下载权限。如果找不到呢&#xff0c;那就用这个办法下载。 1.打开Microsoft Edge浏览器的扩展 2.搜索“视频下载”&#xff0c;选择“视频下载Pro” 3.点击“…...

【去哪里找开源商城项目】

有很多途径可以找到开源项目&#xff0c;以下是一些常用的方法&#xff1a; 开源代码托管平台&#xff1a;许多开源项目都托管在平台上&#xff0c;例如GitHub、GitLab和Bitbucket。你可以在这些平台上浏览项目&#xff0c;搜索关键词&#xff0c;查看项目的星级和贡献者数量等…...

ei会议检索:第二届网络、通信与智能计算国际会议(NCIC 2024)

第二届网络、通信与智能计算国际会议&#xff08;NCIC 2024&#xff09;将于2024年11月22-25日在北京信息科技大学召开&#xff0c;聚焦网络、通信与智能计算&#xff0c;欢迎国内外学者投稿交流&#xff0c;录用文章将在Springer出版&#xff0c;并提交EI等检索。 NCIC 2024&a…...

vue添加省市区

主要参考“element”框架&#xff1a;Element - The worlds most popular Vue UI framework <div class"block"><span class"demonstration">默认 click 触发子菜单</span><el-cascaderv-model"value":options"optio…...

运维监控丨16条常用的Kafka看板监控配置与告警规则

本期我们针对企业运维监控的场景&#xff0c;介绍一些监控配置和告警规则。可以根据Kafka集群和业务的具体要求&#xff0c;灵活调整和扩展这些监控配置及告警规则。在实际应用场景中&#xff0c;需要综合运用多种监控工具&#xff08;例如Prometheus、Grafana、Zabbix等&#…...

ECharts饼图,配置标注示例

const color ["#00FFB4", "#5498FD", "#6F54FD", "#FD5454", "#FDA354",]const datas [{ value: 100, name: "一年级" },{ value: 70, name: "二年级" },{ value: 184, name: "三年级" },{…...

【大象数据集】大象图像识别 目标检测 机器视觉(含数据集)

一、背景意义 在信息时代&#xff0c;数据的收集和分析技术得到了飞速发展。深度学习算法的出现&#xff0c;为处理和分析这些复杂的鱼类数据集提供了强大的工具。深度学习具有强大的模式识别和特征提取能力&#xff0c;能够从海量的数据中自动学习和发现规律&#xff0c;为鱼…...

LN 在 LLMs 中的不同位置 有什么区别么

Layer Normalization&#xff08;LN&#xff09;是一种在深度学习中用于稳定和加速神经网络训练的归一化技术。它通过对单个样本的所有激活进行归一化来工作&#xff0c;与Batch Normalization&#xff08;BN&#xff09;不同&#xff0c;BN是对一个mini-batch中的所有样本的激…...

【代码随想录Day57】图论Part08

拓扑排序精讲 题目链接/文章讲解&#xff1a;代码随想录 import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 读取文件数量 n 和依赖关系数量 mint n scanner.nextInt();int m scanner.nextInt()…...

记录一次mmpretrain训练数据并转onnx推理

目录 1.前言 2.代码 3.数据形态【分类用】 4.配置文件 5.训练 6.测试-分析-混淆矩阵等等&#xff0c;测试图片效果等 7.导出onnx 8.onnx推理 9.docker环境简单补充 1.前言 好久没有做图像分类了&#xff0c;于是想用商汤的mmclassification快速搞一波&#xff0c;发现已…...

shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘

查找美国安全局漏洞 nww.nsa.gov&#xff08;美国安全局官方网站) net参数使用 搜索指定的ip网段 shodan search --limit 10 --fields ip_str,port net:208.88.84.0/24 (老美国家安全局的一个网段)可能直接访问不太行&#xff0c;可以使用host参数&#xff0c;得到域名再去…...

telnet 密码模式 访问路由器

telnet 密码访问华为路由器 模拟被访问路由 sy [Huawei]int g0/0/0 //选中 g0/0/0端口 [Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 24 //设置端口ip [Huawei]user-interface vty 0 4 //配置vty [Huawei-ui-vty0-4]set authentication password cipher huawei123 //设置…...

文心一言 VS 讯飞星火 VS chatgpt (380)-- 算法导论24.4 12题

十二、给出一个有效算法来解决 A x ⩽ b Ax⩽b Ax⩽b 的差分约束系统&#xff0c;这里 b b b 的所有元素为实数&#xff0c;而变量 x i x_i xi​ 中某个给定的子集是整数。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 差分约束系统问题通常用于解决带有约…...

Unity自定义数组在Inspector窗口的显示方式

了解 单行高度:EditorGUIUtility.singleLineHeight获取 PropertyField 控件所需的高度:EditorGUI.GetPropertyHeight属性是否在Inspector窗口展开&#xff1a;SerializedProperty.isExpanded可重新排序列表类&#xff1a;ReorderableList绘制纯色矩形&#xff1a;EditorGUI.Dr…...

ERC论文阅读(03)--SPCL论文阅读笔记(2024-10-29)

SPCL论文阅读笔记 论文中心思想 这篇论文是研究ERC任务的论文&#xff0c;作者提出了监督原型对比学习的方法用于ERC任务。 论文 EMNLP2022 paper “Supervised Prototypical Contrastive Learning for Emotion Recognition in Conversation” 现存问题 现存的使用监督对…...

Straightforward Layer-wise Pruning for More Efficient Visual Adaptation

对于模型中冗余的参数&#xff0c;一个常见的方法是通过结构化剪枝方法减少参数容量。例如&#xff0c;基于幅度值和基于梯度的剪枝方法。尽管这些方法在传统训练上通用性&#xff0c;本文关注的PETL迁移有两个不可避免的问题&#xff1a; 显著增加了模型存储负担。由于不同的…...

喜讯 | 创邻科技杭州电子科技大学联合实验室揭牌成立!

近日&#xff0c;杭州电子科技大学图书情报专业硕士行业导师聘任仪式暨杭电-创邻图技术与数字化联合实验室&#xff08;图书档案文物数字云联合研发中心&#xff09;揭牌仪式在杭州电子科技大学隆重举行。杭州电子科技大学原副校长吕金海、研究生院副院长潘建江&#xff0c;科研…...

海外媒体发稿:如何打造媒体发稿策略

新闻媒体的发稿推广策略对于提升品牌知名度、吸引流量以及增加收入非常重要。本文将介绍一套在21天内打造爆款新闻媒体发稿推广策略的方法。 第一天至第七天&#xff1a;明确目标和定位 在这个阶段&#xff0c;你需要明确你的目标和定位&#xff0c;以便为你的新闻媒体建立一个…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...