自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小二温华

春风十里,不如你

  • 博客(61)
  • 收藏
  • 关注

原创 Go并发编程-模拟并发模型-司机与售票员

上题代码实现:package ossyncimport ( "fmt")/* while (true) while (true) { { 启动车辆; 关门; 正常运行; 售票; 到站停车; 开门; } } 关门才可以启动车辆; 停车之后才能开门;*/var canStart = make(chan bool)//表示司机进程p1能否...

2020-03-29 12:19:22 307

原创 Go并发编程-模拟并发模型-案例1

上题初步代码实现:package mainimport ( "fmt" "sync" "time")var wg sync.WaitGroupvar S1 bool //S1,表示P1能否开始执行var S2 bool //S2,表示P1能否开始执行var S3 bool //S3,表示P1能否开始执行var S4 int //S4,表示P4能否开始执行fu...

2020-03-29 00:47:38 364

原创 Go语言并发编程-缓冲和单向通道

缓冲通道缓冲通道就是指一个通道带有一个缓冲区,发送数据到一个缓冲通道只有在缓冲区满时才被阻塞,从缓冲通道获取数据只有在缓冲区为空时才会被阻塞。通道可以存放的数据个数为1+缓冲区容量代码实现:package mainimport ( "fmt" "strconv")func main(){ ch := make(chan string, 4) //缓冲区容量为4 go se...

2020-03-28 19:45:43 292

原创 Go语言并发编程-channel通道

通道的概念通道可以被认为是Goroutines通信的管道。数据可以从一端发送到另一端,通过通道接受。Go语言强烈建议的是使用Channel通道来实现Goroutines之间的通信。Go语言种,要传递某个数据给另一个goroutine(协程),可以把这个数据封装成一个对象,然后把这个对象的指针传入某个channel中,另外一个goroutine能够访问channel里面的数据,从而代替使用共享内...

2020-03-28 18:22:35 192

原创 Go语言并发编程-读写锁

RWMutex(读写锁)通过对互斥锁的学习,我们已经了解了锁的概念及用途。主要用于处理并发中的临界资源问题。RWMutex是基于Mutex实现的,只读锁的实现使用类似引用计数器的功能。RWMutext是读/写互斥锁。锁可以由任意数量的读取器或单个编写器持有。RWMutex的零值是未锁定的mutex。当有一个goroutine获得写锁定,其他无论是读锁定还是写锁定都将阻塞知道写解锁;当有一...

2020-03-26 20:52:25 211

原创 Go语言并发编程-sync包中WaitGroup

并发进程同步工具-WaitGroup使用等待组进行多个任务的同步,等待组可以保证在并发环境中完成指定数量的任务等待组的方法:方法名功能(wg *WaitGroup)Add(delta int)等待组的计数器+1(wg *WaitGroup)Done()等待组的计数器-1(wg *WaitGroup)Wait()当等待组计数器不等于0时阻塞,直到为0...

2020-03-26 19:14:51 176

原创 Go语言并发编程-临界资源安全与互斥锁

引入在任何支持并发编程的语言中,进程/线程对临界资源的竞争都是不可避免的问题,举一个例子来引入package mainimport ( "fmt" "math/rand" "time")//全局变量票数var tickets = 10func main(){ //三个goroutine 模拟售票窗口 go saleTickets("售票口1") go saleTi...

2020-03-26 19:02:20 293

原创 Linux网络服务-DCHP-介绍

DCHP简介DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个工作在应用层的局域网网络协议,数据传输时使用UDP不可靠传输协议工作,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配网络资源、使网络环境中的主机能动态的获得IP地址、Gateway网关地址、DNS域名解析服务器地址等信息,并能够提升地址的使用率。...

2020-03-26 11:50:09 655

原创 Linux网络服务-基础-TCP Wrappers

TCP Wrappers简介TCP_Wrappers是一个工作在第四层(传输层)的安全工具,对具有状态连接(TCP)的特定服务进行安全检测并实现访问控制,界定方式是凡是调用libwrap.so库文件的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd、telnet。判断程序是否受其安全控制方式:查看对应服务命令...

2020-03-26 11:47:24 181

原创 Linux网络服务-基础-ssh其他相关命令

远程拷贝命令 scpscp工具,基于ssh远程安全登录的,可以将主机A上的文件或目录拷贝给主机B并且改名字,也可以将主机B上的文件或目录下载到主机A中,同时也支持修改文件名。-P 端口#若端口不是默认22,使用此格式指定端口远程拷贝文件scp 本机文件 user@host:路径/远程拷贝目录scp -r 本机目录 user@host:路径/下载文件到本地scp user@hos...

2020-03-26 11:25:03 76

原创 Linux网络服务-基础-ssh配置参数详解

禁止使用密码登录当我们学会了使用密钥对进行验证后,建议生产环境下将账户密码登录功能关掉配置文件:/etc/ssh/sshd_config选项:PasswordAuthenticationvim 中命令模式下:/Password改为no重启服务service sshd restart # 6.xsystemctl restart sshd #7.x禁止使用roo...

2020-03-26 11:15:44 431

原创 Linux网络服务-基础-ssh配置准备环节

配置ssh服务环境准备两台linux操作系统的主机,配置好相关网络参数,实现可以正常通信,并将主机名修改为不同的名字临时关闭防护功能:iptables -F #清空防火墙规则setenforce 0 #临时关闭SELinuxSELinux是一个安全机制,独立于文件系统权限的行为控制机制,甚至可以限制root的权限getenforce #查看SELinux状态setenfo...

2020-03-26 10:57:39 213

原创 Linux网络服务-基础-ssh概念和登陆验证模式

ssh安全远程管理什么是sshssh是Secure shell的缩写,是一个建立在应用层上的安全远程管理协议。ssh是目前较为可靠的传输协议,专为远程登录会话和其他网络服务提供安全性。利用ssh协议可以有效防止远程登陆过程中的信息泄露问题。ssh可用于大多数Unix和类Unix操作系统中,能够实现字符串界面的远程登陆管理,默认使用22端口,采用密文的形式在网络中传输数据,相对于通过明文传输的...

2020-03-26 10:07:05 325

原创 Linux网络服务-基础-网络常见命令

DNS配置命令nslookup: 域名解析测试命令DNS的配置方式:配置文件:局部 :/etc/sysconfig/network-scripts/ifcfg-eth0DNS=ip全局(多网卡时):/etc/resolv.confnameserver ip相关配置文件: /etc/hosts手动静态配置域名和ip地址映射netstat:查看系统的网络连接状态、路由信...

2020-03-25 21:37:21 123

原创 Linux网络服务-基础-网关和路由

路由器网段之间的相连部分跨网段通信,数据转发交换机只能在局域网内,同一个网段通信,因此每两个网段之间都应该有路由器,局域网内主机通过交换机再通过路由器访问公网路由选择(取决于路由协议)动态路由简单的协议:最短路径优先,适合局域网,小网络,网络情况相似复杂的协议:消耗资源多,适合广域网,网络情况复杂静态路由不消耗路由器计算资源,适合局域网网关本身仍是路由器,...

2020-03-25 21:09:01 295

原创 Linux网络服务-基础-常见网络协议和端口

网络地址和物理地址网络地址互联网协议地址(IP地址)为互联网上每一个网络或主机分配一个逻辑地址,IP地址工作在网络层IP的分类:IPV4 IPV6私有局域网地址的IP范围:10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.255192.168.0.0 ~ 192.168.255.255物理地址物理地址(MAC地址)为每一个设备设置...

2020-03-25 20:41:57 509

原创 Linux网络服务-基础-CentOS 7 网卡配置

配置文件/网卡改名配置文件目录:/etc/sysconfig/network-scripts/if-ens33配置管理命令:ifconfig/ip address show配置文件内容DEVICE=ens33 #设备名称NAME=ens33 #网卡名称BOOTPROTO=static #连接方式(d...

2020-03-25 19:44:50 279

原创 Linux网络服务-基础-CentOS 6和7的对比

组成对比CentOS 6CentOS 7文件系统EXT4XFS内核2.63.10默认数据库MySqlMariaDB本地化命令CentOS 7 采用了较多ctl后缀命令:timedatectl 时区查看和调整timedatectl set-timedatelocalectl 语系查看和调整localectl set-loc...

2020-03-25 19:42:57 156

转载 VIM命令总结

VIM普通模式普通编辑命令功能:浏览,普通编辑x:删除光标所在字符  (=d+h)X:删除光标前一个字符  (=d+l)D:删除当前行光标位置到行尾的字符  (=d+$)dd:删除光标所在的行J:删除光标所在行的换行符p:在光标后粘贴P:在光标前粘贴,粘贴行时,p是粘贴在光标的下方,P粘贴在光标上方xp:交换两个字符的位置ddp:交换两...

2020-03-25 15:42:32 141

原创 Scala数据结构——稀疏数组

稀疏数组保存稀疏数组,常通过三元组的方式,来存储二维矩阵(数组)中比较稀疏的值,例如[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0][0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0][0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0][0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0][0, 0, 0, 0, 0, 0, 0...

2020-03-24 22:25:05 142

原创 Scala编程实战——第二章 数值

Scala所有的数值都是对象,包括Byte、Char、Double、Float、Int、Long和Short,与被称为"非数值类型"的Unit和Boolean一样,这些数值类型都继承扩展自AnyVal特质(trait)内奸数值类型的数值范围:Char :16位无符号Unicode字符Byte :8位有符号整数Short :16位有符号整数Int :32位有符号整数Long :64位有...

2020-03-22 16:18:15 192

原创 Scala编程实战——第一章 字符串(2)

1.6字符串中的查找模式(符合一个正则表达式)val patternStr = “正则表达式”.rString.r方法可以创建一个Regex对象val match1 = patternStr.findFirstIn(待查找String)Regex对象的findFirstIn方法会找到第一个匹配的,返回一个Option[String],相当于一个容器,包含了零或者一个值的容器patter...

2020-03-21 20:35:37 185

原创 Scala编程实战——第一章 字符串(1)

1.1测试字符串的相等性==scala> val s1="Hello"s1: String = Helloscala> val s1 = "Hello"s1: String = Helloscala> val s2 = "Hello"s2: String = Helloscala> val s3 = "H" + "ello"s3: String ...

2020-03-21 20:16:04 212

原创 Linux 安装python3及虚拟环境

1.安装yum -y update #更新yum源yum -y install python3 #安装python3pip3 install --upgrade pip #升级pippip3 install virtualenv # python虚拟环境pip3 install virtualenvwrapper # 封装了虚拟环境,支持一些简化命令pip3 list #查看是否...

2020-03-03 23:00:28 213

转载 CentOS7 安装mysql8.0

转载:https://www.cnblogs.com/yanglang/p/10782941.html

2020-03-03 22:54:17 128

原创 Docker-Centos7安装docker

CentOS 系统 root 根目录 yum -y update #更新yum源 yum -y install gcc yum -y install gcc-c++ (可选)如果安装过docker,那么卸载 yum remove docker \ docker-client \ docker-client-la...

2020-03-03 22:50:44 77

原创 Django-状态保持及内置表单,模型表单

16状态保持及表单cookie技术HTTP协议的重要特性:无状态一次请求,一次响应也就是服务器不会保存请求的状态cookie是客户端第一次访问服务器时,服务器给予分配的一个值,这个值是保存在浏览器上的,可以手动修改,删除,因此是不安全的服务器端对访问次数记录的功能:def index(request): num = request.COOKIES.get('num') ...

2020-02-15 14:01:53 168

原创 Java2实用教程——习题6

习题61.问答题不能不能可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法,一般而言,我们将不同的事物所具有的同一功能作为接口,当使用接口回调时,就会因为不同类创建的对象而产生不同的事物的同一行为,例如:不同电器的父类应该是不同的,但是它们都有开、关功能不可以,因为常量是不可以改变的量,即不能赋值,那么就必须指定初值可以...

2020-02-15 10:10:32 3276

原创 Django-中间件、上下文处理器和Djangoadmin

18中间件、上下文处理器和Djangoadmin中间件的引入在app文件夹下建立middleware.py一个中间件就是一个可调用的对象,它会接收一个request并返回一个请求可以是一个函数# 外部函数是中间件工厂,内部的是中间件def simple_middleware(get_response): # 一次性的设置和初始化 start project 只执行一次的代...

2020-02-14 19:01:42 165

原创 Java2实用教程——习题5

习题51.问答题不可以,为了防止继承关系混乱,java不支持多继承,但c++支持多继承是,所有的类的最高层的基类就是Object类不能,友好权限只在一个包内可以使用声明与父类成员变量同名的成员变量即可返回类型一致或者是父类方法的子类型,函数名,参数列表完全一致,目的是为子类定制与父类相似的行为不可以abstract类可以访问对象隐藏或继承的成员变量,继承或重写的方法,不可以访问...

2020-02-14 10:40:06 292

原创 Django-请求与响应,文件上传与数据库交互

12请求与响应django.http.HttpRequest对象视图中的request是django自动创建的HttpRequest对象request中常用的属性path 路径method 请求方法encoding 编码方式GET 是一个字典:是url中的参数POST 同理是一个字典:POST方法中的参数COOKIESsessionis_ajax()其余属性c...

2020-02-13 14:49:14 475

原创 Java2实用教程——习题4

习题41.问答题封装性、继承性、多态性、[抽象性]单词开头字母大写(大驼峰命名法)除开头字母其余单词开头字母大写(小驼峰命名法)属性行为new Class();时使用构造方法,构造方法没有类型对象new之后就会被分配内存空间即同名的方法实现不同的功能(一般是由于参数略有不同但是近似的功能),构造方法可以重载可以,类变量(static变量)是属于类的,也可以理解为是该类创建的每...

2020-02-13 08:52:55 729

原创 Java2实用教程——习题3

习题31.问答题布尔型布尔型不可以do{}while()中代码块至少执行一次但Go和Python中是没有while语句的2.选择题ACC3.程序阅读题你,苹,甜Jeep好好x=-5,y=-14.编程题public class Exercise3_1 { public static void main(String args[]) { ...

2020-02-12 21:35:42 347

原创 MySQL数据库总览

MySQL数据库​ 一、为什么要学习数据库​ 二、数据库的相关概念​ DBMS、DB、SQL​ 三、数据库存储数据的特点​ 四、初始MySQL​ MySQL产品的介绍​ MySQL产品的安装 ★​ MySQL服务的启动和停止 ★​ MySQL服务的登录和退出 ★​ MySQL的常见命令和语法规范​ 五、DQL语言的学习 ★​...

2020-02-12 18:50:47 165

原创 Django-模型基础2

10常用查询及表关系的实现1.常用的模型字段类型项目app中models.py中的自定义的类对应数据库中的一张表,该类继承于django.db.models.Model超类,常用的字段类也在models模块中,常见的有MySql===>Djangoint ------>IntegerFieldvarchar ------> CharFieldlongtex...

2020-02-12 11:20:07 89

原创 Java2实用教程——习题2

习题21.问答题Java的基本数据类型整数型:byte:占据1个字节 (-128~127 )short: 占据2个字节int:占据4个字节long:占据8个字节浮点型:float:占据4个字节double:占据8个字节字符型:char:占据两个字节布尔型:booleanJava的引用数据类型类面向对象语言最重要的概念之一接口在c++中即为纯虚基类,...

2020-02-11 23:01:48 834

原创 Django-模型基础

07表关联对象及多表查询数据库连接配置->mysql安装pymysql模块终端窗口 pip install pymsql创建数据库用户1.sudo su 进入root权限模式2.mysql 无密码直接进入mysql3.输入命令CREATE USER ‘用户名’@‘localhost’ IDENTIFIED BY ‘密码’;GRANT ALL PRIVILEG...

2020-02-11 18:28:31 98

原创 Django-阶段复习1

05阶段复习1一.搭建环境1.搭建虚拟机python的环境副本下的django (linux)workon 命令:查询目前系统存在的虚拟环境mkvirtualenv -p /usr/bin/python3.6 django 命令:创建虚拟环境 -p 路径 虚拟环境命名pip install django(==版本) 命令:安装django基本框架2.创建django...

2020-02-11 17:41:48 130

原创 数据结构-C语言描述:单链表

链表——链式存储和顺序存取链表和顺序表(数组)是数据结构中最基本的物理存储结构,链表是由结构体定义结点,结构体内定义的成员指针相互链接各个结点形成的数据结构,因此在虚拟地址空间(暂且理解为内存)中是不连续的,相比于顺序表(数组存储),这种存储方式对于数据元素的插入和删除所付出的代价要小,但进行访问和修改的代价要大得多(因为每次要从头开始遍历链表),并且由于结点内存在数据域和指针域,导致存储密度不...

2019-11-23 09:10:40 860

原创 数据结构-C语言描述:顺序表

数据结构的开端数据结构分为线性结构和非线性结构,线性结构就是指数据中的元素仅存在一对一的逻辑关系,只有一个直接前驱和一个直接后继,当然最开始的元素只有后继,最后面的元素只有前驱。线性结构包括:线性表(顺序表和链表),栈,队列,串非线性结构包括:树,图对于不同的数据结构,常常存在不同的存储或算法上的问题,要求我们灵活应对,熟记应对这些问题已有的高效而便捷的方法。本篇的主题为顺序表。顺序表的...

2019-11-23 08:11:06 580 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除