泰安专业的网站制作/百度推广售后客服电话
需求:
将两块空硬盘合并为“一块”,挂载到指定目录(/data)下,达到在一个目录使用2块硬盘所有空间的效果。
使用 fdisk -l 命令查看当前系统中的硬盘,如下图:
系统中存在两块未分配的硬盘://dev/nvme0n3 和 /dev/nvme0n4,共8T
现将两块硬盘合并成一块,挂载到/mysqldata目录下,具体方法如下:
1.创建pv
pvcreate /dev/sdb (/dev/nvme0n3) # 硬盘1
pvcreate /dev/sdc (/dev/nvme0n4) # 硬盘2
2.创建vg
# vgcreate [自定义LVM名称] [硬盘]
# 先使用硬盘1创建vg:lvm_datavgcreate lvm_data /dev/sdb
3.扩展vg
# vgextend [自定义vg名称] [硬盘]
# 使用硬盘2扩展vgvgextend lvm_data /dev/sdc
4.创建lv
# lvcreate -l[自定义分区大小] -n[自定义分区名称] [vg名称]
# 分区大小不能超过硬盘容量总和
如创建一个10G的分区:
lvcreate -l10.0G -n vg_data lvm_data
如果将两个盘全部空间分区,可以使用以下方式:
lvcreate -l 100%VG -n vg_data lvm_data
5.格式化分区
# mkfs -t [文件系统] [分区位置]mkfs -t ext4 /dev/lvm_data/vg_data
6.挂载分区
# mount [分区位置] [目录地址]mount /dev/lvm_data/vg_data /data
8.总结
一.pv lv vg 介绍
PV(physical volume)即物理卷,就是物理磁盘,可以通过 fdisk -l 查看操作系统有几块硬盘
VG(volume group)即卷组,就是一组物理磁盘的组合,里面可以有一块硬盘也可以有多块硬盘
LV(logical volume)及逻辑卷,就是在VG(指定的物理磁盘组)里面划分出来的
可以说成是PV就是硬盘,而VG就是管理硬盘的操作系统,而LV就是操作系统分出来的各个分区.
PV->VG->LV-> 文件系统使用(挂载到某个目录)
硬盘或分区做成pv,然后将pv或多个pv建立vg,vg上建立lv
二.命令集合
1.PV
pvcreate :根据物理盘,创建pv
pvscan :查询目前系统里的pv
pvdisplay:显示pv的状态
pvremove:将pv属性移除
2.VG
vgcreate:创建vg
vgscan:查找当前系统里面的vg
vgdisplay:显示当前系统vg的状态
vgextend:给vg添加额外的pv
vgreduce:在vg内删除pv
vgchange:设置vg是否是启动状态(active)
vgremove:删除一个vg
3.LV
lvcreate:创建lv
lvscan:查询当前系统的lv
lvdisplay:显示lv的属性
lvextend:给lv添加容量
lvredurce:给lv减少容量
lvremove:删除一个lv
lvresize:对lv大小的容量进行调整
三.实际操作
下面实际操作下,来看看
1.案例描述
从下看到只是把sda这块硬盘用了,做了vg(vg_dsgdata),并且在vg(vg_dsgdata)下建了/dev/vg_dsgdata/lv_root, /dev/vg_dsgdata/lv_swap, /dev/vg_dsgdata/lv_home三个lv, 通过df -h看到/dev/mapper/vg_dsgdata-lv_root挂载在根目录/下,/dev/mapper/vg_dsgdata-lv_home挂载在/home目录下.从上述看,还剩余sdb,sdc,sdd三块硬盘没有使用
[root@dsgdata ~]# fdisk -l
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a2d9e
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 121602 976248832 8e Linux LVM
Disk /dev/mapper/vg_dsgdata-lv_root: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_dsgdata-lv_swap: 8355 MB, 8355053568 bytes
255 heads, 63 sectors/track, 1015 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_dsgdata-lv_home: 937.6 GB, 937632464896 bytes
255 heads, 63 sectors/track, 113993 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
[root@dsgdata ~]#
[root@dsgdata ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name vg_dsgdata
PV Size 931.02 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 238341
Free PE 0
Allocated PE 238341
PV UUID lPOKfO-HZ6y-4ubK-5TPk-FuB0-ypCU-y0mK1R
[root@dsgdata ~]#
[root@dsgdata ~]# vgdisplay
--- Volume group ---
VG Name vg_dsgdata
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 931.02 GiB
PE Size 4.00 MiB
Total PE 238341
Alloc PE / Size 238341 / 931.02 GiB
Free PE / Size 0 / 0
VG UUID zQcZh0-2t6e-9LuM-zHnv-R0tG-sQDi-Ba3wLK
[root@dsgdata ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg_dsgdata/lv_root
LV Name lv_root
VG Name vg_dsgdata
LV UUID D7Z7jC-v0aK-fYJ5-AbcN-LmjX-nMEJ-dwpcm0
LV Write Access read/write
LV Creation host, time dsgdata, 2014-03-05 17:59:43 +0800
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/vg_dsgdata/lv_swap
LV Name lv_swap
VG Name vg_dsgdata
LV UUID 0HrVlq-IS9g-hNH0-R1Sr-hvcd-BUI2-hkjfLh
LV Write Access read/write
LV Creation host, time dsgdata, 2014-03-05 18:00:00 +0800
LV Status available
# open 1
LV Size 7.78 GiB
Current LE 1992
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/vg_dsgdata/lv_home
LV Name lv_home
VG Name vg_dsgdata
LV UUID PC4IMN-Nvm3-UpaB-Em5I-NCvq-fzPF-MKcqOs
LV Write Access read/write
LV Creation host, time dsgdata, 2014-03-05 18:00:01 +0800
LV Status available
# open 1
LV Size 873.24 GiB
Current LE 223549
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
[root@dsgdata ~]#
[root@dsgdata ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_dsgdata-lv_root 50G 4.4G 43G 10% /
tmpfs 3.9G 228K 3.9G 1% /dev/shm
/dev/sda1 485M 40M 420M 9% /boot
/dev/mapper/vg_dsgdata-lv_home 860G 200M 816G 1% /home
[root@dsgdata ~]#
2.下面手工操作,创建增加减少删除关于pv,vg,lv的操作
创建pv
[root@dsgdata /]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
[root@dsgdata /]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name vg_dsgdata
PV Size 931.02 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 238341
Free PE 0
Allocated PE 238341
PV UUID lPOKfO-HZ6y-4ubK-5TPk-FuB0-ypCU-y0mK1R
"/dev/sdb" is a new physical volume of "931.51 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 931.51 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID MO29Sj-3lEd-Licp-BNxD-9qPH-v5y4-zLUNHI
[root@dsgdata /]# pvscan
PV /dev/sda2 VG vg_dsgdata lvm2 [931.02 GiB / 0 free]
PV /dev/sdb lvm2 [931.51 GiB]
Total: 2 [1.82 TiB] / in use: 1 [931.02 GiB] / in no VG: 1 [931.51 GiB]
[root@dsgdata /]#
[root@dsgdata /]# pvremove /dev/sdb
Labels on physical volume "/dev/sdb" successfully wiped
[root@dsgdata /]# pvscan
PV /dev/sda2 VG vg_dsgdata lvm2 [931.02 GiB / 0 free]
Total: 1 [931.02 GiB] / in use: 1 [931.02 GiB] / in no VG: 0 [0 ]<pre code_snippet_id="220533" snippet_file_name="blog_20140306_6_5401133" class="html" name="code">[root@dsgdata /]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
3.创建VG
3.创建VG
[root@dsgdata /]# vgcreate DATA /dev/sdb
Volume group "DATA" successfully created
[root@dsgdata /]#
[root@dsgdata /]# vgdisplay DATA
--- Volume group --- VG Name DATA System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 931.51 GiB PE Size 4.00 MiB Total PE 238467 Alloc PE / Size 0 / 0 Free PE / Size 238467 / 931.51 GiB VG UUID HhP6O7-sjLT-xzA7-YqLl-QsOJ-lQSM-3sN5VS
[root@dsgdata /]#
给VG添加或者减少容量:
[root@dsgdata /]# pvcreate /dev/sdc Physical volume "/dev/sdc"
successfully created
[root@dsgdata /]# vgextend DATA /dev/sdc
Volume group "DATA" successfully extended
[root@dsgdata /]# vgdisplay DATA
--- Volume group --- VG Name DATA System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.82 TiB PE Size 4.00 MiB Total PE 476934 Alloc PE / Size 0 / 0 Free PE / Size 476934 / 1.82 TiB VG UUID HhP6O7-sjLT-xzA7-YqLl-QsOJ-lQSM-3sN5VS
[root@dsgdata /]# vgreduce DATA /dev/sdc
Removed "/dev/sdc" from volume group "DATA"
[root@dsgdata /]# vgdisplay DATA
--- Volume group --- VG Name DATA System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 931.51 GiB PE Size 4.00 MiB Total PE 238467 Alloc PE / Size 0 / 0 Free PE / Size 238467 / 931.51 GiB VG UUID HhP6O7-sjLT-xzA7-YqLl-QsOJ-lQSM-3sN5VS
[root@dsgdata /]#
4.创建LV,并挂载
[root@dsgdata /]# lvscan
ACTIVE '/dev/vg_dsgdata/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/vg_dsgdata/lv_swap' [7.78 GiB] inherit
ACTIVE '/dev/vg_dsgdata/lv_home' [873.24 GiB] inherit
[root@dsgdata /]# lvcreate -n test -L 100G DATA
Logical volume "test" created
[root@dsgdata /]# lvscan ACTIVE
'/dev/DATA/test' [100.00 GiB] inherit ACTIVE
'/dev/vg_dsgdata/lv_root' [50.00 GiB] inherit ACTIVE
'/dev/vg_dsgdata/lv_swap' [7.78 GiB] inherit ACTIVE
'/dev/vg_dsgdata/lv_home' [873.24 GiB] inherit
[root@dsgdata /]#
在根目录下创建目录CXF
[root@dsgdata /]# mkdir /cxf
对逻辑卷进行格式化:
[root@dsgdata /]# mkfs -t ext4 /dev/DATA/test
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214400 blocks
1310720 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872</p><p>Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:
done</p><p>This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@dsgdata /]#
将逻辑卷/dev/DATA/test挂载到/cxf目录下:
[root@dsgdata /]# mount /dev/DATA/test /cxf
[root@dsgdata /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_dsgdata-lv_root 50G 4.4G 43G 10% /
tmpfs 3.9G 228K 3.9G 1% /dev/shm
/dev/sda1 485M 40M 420M 9% /boot
/dev/mapper/vg_dsgdata-lv_home 860G 200M 816G 1% /home
/dev/mapper/DATA-test 99G 188M 94G 1% /cxf
[root@dsgdata /]#
相关文章:

Linux中将多块新硬盘合并成一个,挂载到/mysqldata目录下
需求: 将两块空硬盘合并为“一块”,挂载到指定目录(/data)下,达到在一个目录使用2块硬盘所有空间的效果。 使用 fdisk -l 命令查看当前系统中的硬盘,如下图: 系统中存在两块未分配的硬盘&#…...

Git的SSH密钥配置
Git的SSH密钥配置简记Githttps和ssh的区别基本需求SSH密钥类型ED25519 SSH 密钥RSA SSH 密钥查看您是否有现有的 SSH 密钥对设置流程设置user name和emailssh密钥配置检查是否存在ssh Key创建新的ssh key将ssh密钥添加到您的Git帐户验证您是否可以连接使用Git有一段时间了&…...

C++回顾(九)——多继承
9.1 多继承 9.1.1 概念 一个类有多个直接基类的继承关系称为多继承(多个父类)多继承声明语法 class 派生类名 : 访问控制 基类名1 , 访问控制 基类名2 , … , 访问控制 基类名n {数据成员和成员函数声明 };类 C 可以根据访问控制同时…...

交流约瑟夫森效应
定理 根据约瑟夫森效应的基本方程,当隧道结两端施加恒定电压V0V_0V0时,结两边超导体波函数的位相差为 Δϕ2eℏV0tΔϕ0\begin{align} \Delta\phi\frac{2e}{\hbar}V_0t\Delta\phi_0 \end{align} Δϕℏ2eV0tΔϕ0 得到超导电流密度为 JsJcs…...

大数据项目实战之数据仓库:用户行为采集平台——第3章 用户行为日志
第3章 用户行为日志 3.1 用户行为日志概述 用户行为日志的内容,主要包括用户的各项行为信息以及行为所处的环境信息。收集这些信息的主要目的是优化产品和为各项分析统计指标提供数据支撑。收集这些信息的手段通常为埋点。 目前主流的埋点方式,有代码…...

centos6下为Rstudio安装多版本R
之前的R版本太旧,不少包装不上,需要安装新版本的R: R --version R version 3.6.0 (2019-04-26) -- "Planting of a Tree"于是下载最新版R: 因为没有证书,需要加上最后面的参数. wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-4/R-4.2.2.tar.gz --no…...

TCL 拥抱云原生,实现 IT 成本治理优化
作者:行疾 TCL 工程师团队基于阿里云企业云原生 IT 成本治理方案沉淀了一套成熟的 IT 企业成本治理流程与系统,通过阿里云容器服务提供的开箱即用的成本洞察、资源智能画像等功能,进行业务成本拆分、闲置资源可视化发现,并制定弹性…...

什么是API接口
API接口是指应用程序接口,是一种让不同的应用程序之间进行数据交互的方式。在现代软件开发中,API接口已经成为了必不可少的一部分。它们让开发者们可以将不同的功能组合在一起,同时也让不同的应用程序之间可以相互连接和通讯。API接口的作用A…...

基于单片机的波形发生器设计
单片机可以用来设计各种类型的波形发生器,下面是一种基于单片机的波形发生器设计方案。所需材料:单片机:可以选择常见的Atmel AVR单片机,如ATmega328P等。调制器:可以使用AD9833或AD9851等常用的调制器。时钟ÿ…...

phpmyadmin SQL注入 (CVE-2020-5504)
文章目录 0x01 漏洞介绍0x02 影响版本0x03 漏洞编号0x04 漏洞查询0x05 漏洞环境0x06 漏洞复现方法一:写入shell方法二:报错注入0x07 修复建议免责声明摘抄0x01 漏洞介绍 phpMyAdmin是phpMyAdmin团队的一套免费的、基于Web的MySQL数据库管理工具。该工具能够创建和删除数据库,…...

华为机试题:HJ107 求解立方根(python)
文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…...

论文公式符号规范
参考自1,记录论文公式的符号规范: 1.变量和公式符号表达 物理量 物理量符号用英文斜体字母或希腊斜体字母,表示物理量大小用数字加单位,单位使用正体。 例如: m10.05gx10.12ζ35.36mVm10.05 \mathrm{~g} \quad x10…...

哈工大面向服务的软件系统 期末开卷提纲
引言本课程期末考试为开卷,博主2022年期末卷面94/100,总分92.9排名第2/82,现分享复习提纲以供学弟学妹们参考。本提纲仅供参考,切勿进行其他目的的使用。基于2021秋季考试题的思考一、Spring Boot的优点是:1. 非常快速…...

Adding Conditional Control to Text-to-Image Diffusion Models
安全验证 - 知乎知乎,中文互联网高质量的问答社区和创作者聚集的原创内容平台,于 2011 年 1 月正式上线,以「让人们更好的分享知识、经验和见解,找到自己的解答」为品牌使命。知乎凭借认真、专业、友善的社区氛围、独特的产品机制…...

C++从头再来:知识点速通
1. 关于scanf 1.1 读入数字 scanf 的返回值表示成功输入的变量个数,当输入结束时,scanf将无法再次读取数据,返回0 # include <stdio.h> # include <math.h> # include <time.h># define M 1000000; // compute the max,…...

LearnDash Groups学习群组:您需要了解的一切
大约131k 网站使用 LearnDash。因此,毫无疑问,LearnDash是 WordPress 领域中最受欢迎的 LMS。而且,这是因为它具有强大的功能。但让它更受欢迎的是它与大多数第 3 方扩展很好地集成,并且比现有的任何其他 LMS 都更灵活。群组和群组…...

软件开发过程中遇到一个傻嘚业主能让你抓狂
背景 之前的一个网站交付了之后,业主一直未验收,今天忽然间开始了他的扯淡需求调整。 问题1 有一个问题是pdf文件上传显示问题,目前是pdf有一个封面要上传,排序字段可自动调整控制。但是就这么好用的功能,被他给pas…...

信创系统借力小程序应用生态的可能性
随着国内市场需求的不断增长,国产操作系统的应用也开始逐步发展壮大。国产操作系统在与其他操作系统的竞争中,越来越受到用户的青睐。国产操作系统作为一个全新的市场,给应用开发带来了新的机遇和挑战。本文将从国产操作系统应用的现状分析、…...

ISFP型人格的优势和劣势分析(mbti性格测试)
isfp型人格的优势分析ISFP在艺术上具有令人惊叹的天分,他们充沛且敏锐的情感能够轻易捕捉到那些细腻的情感变化。他们具有强大的表现力和感染力,能够通过自己的作品,将情感描绘出来并令观众感同身受,这使得他们在艺术和人文领域能…...

电影《断网》观后感
上周看了电影《断网》这部电影,题材是网络攻击与防范的故事,这样的题材距离我们很远,又离我们很近,我们每天都在用网络,生活中也离不开网络,所以它离我们很近,但是真正涉及到网络攻击时…...

查看python第三方库的依赖pkgs
课题组的服务器不给连外网,安装python第三方库就只能手动离线安装。但是python第三方库可能会迭代依赖,单纯的pip show [pkg]是看不出来的…… 参考链接:查看python第三方库的依赖 https://blog.csdn.net/qq_38316655/article/details/127943…...

CF756div3 vp
又被薄纱了,rk就不放了,好丢人QwQDashboard - Codeforces Round 756 (Div. 3) - CodeforcesA. Make Even小分类讨论题意:给定一个数,每次操作可以选取其前缀然后翻转其前缀,问你最少操作几次可以把该数变为偶数思路&am…...

Linux命令·less
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less …...

修改redis改key值不改过期时间
今天在做图片验证码的时候遇到一个问题。用redis的生命周期来存放,用户输入错误次数。 三十秒内输错三次就,等待三十分钟。 那么问题来了,如果说第一次输入错误,应该是 key为用户用,value 为 次数2 ex就为30秒 &…...

Spark的DataFrame使用
内容目录创建SparkSession对象从CSV文件中读取从JSON文件中读取从Parquet文件中读取从数据列表中创建DataFrame从字典列表中创建DataFrame选择一列选择多列过滤年龄大于30的数据过滤名字为Alice的数据可以使用and、or、not等操作符进行组合查询按照年龄分组并计算平均年龄和最大…...

【Flutter】入门Dart语言:操作符的基本用法
文章目录 一、前言二、常用的操作符1.算术操作符2.关系操作符3.逻辑操作符4.赋值操作符5.三元运算符三、总结一、前言 当我们在编写Flutter应用程序时,操作符是我们不可或缺的工具。它们是用于执行各种操作的关键字和符号,可以帮助我们简化代码并提高效率。熟练掌握各种类型…...

Linux线程概念
重新认识一下进程 在之前写过的与进程相关的博文中,都把进程看作是只有一个PCB的进程。如图: 而实际上,在Linux中,进程不止一个执行流,而是可能会有几个或很多个。同一个进程中,每一个执行流都指向同一个虚…...

C#基础教程10 方法
C#方法 方法的语法访问修饰符:返回类型:方法名称:参数列表:方法体:返回值:方法的调用参数传递按值传递按引用传递输出参数方法的重载总结方法是C#中最基本的代码结构之一。方法是一组可重复使用的代码,它接受输入,执行一些操作并返回结果。在本教程中,我们将深入了解C…...

java高性能并发计数器之巅峰对决
并发计数器各个方案介绍方案概述1. jdk5提供的原子更新长整型类 AtomicLong2. synchronized3. jdk8提供的 LongAdder 【单机推荐】4. Redisson分布式累加器【分布式推荐】方案介绍jdk5提供的原子更新长整型类 AtomicLong在JDK1.5开始就新增了并发的Integer/Long的操作工具类Ato…...

HTTPS简介
HTTPS是HTTP开启TLS传输协议,客户端要拿到服务端的公钥,用公钥加密数据后再进行传输,防止数据泄露后背篡改。它要解决两个问题:怎么保证公钥可信怎么加密数据公钥可信问题客户端从服务端获取公钥的时候,存在请求被拦截…...