<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[str_lyc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/str_lyc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; str_lyc]]></copyright><item><title><![CDATA[网络通信——UDP\TCP\ Socket、http\https、SMTP、FTP，TCP/IP协议簇，OSI网络模型（个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109548885</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109548885</guid><author>str_lyc</author><pubDate>Sat, 07 Nov 2020 18:49:45 +0800</pubDate><description><![CDATA[一、HTTP/HTTPS
什么是HTTP?
超文本传输协议,是一个基于请求与相应，无状态，应用层协议，基于TCP/IP协议传输数据
HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器，Web服务器发送被请求的信息给客户端。
什么是HTTPS?
是一种通过计算机网络进行安全通信的传输协议，经由HTTP进行通信，利用SSL/TLS建立全通信，加密数据包
区别：
1.https协议需要到CA申请证书。
2.http]]></description><category></category></item><item><title><![CDATA[网络通信——TCP “三次握手“、“四次挥手“ 详解     （个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109543525</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109543525</guid><author>str_lyc</author><pubDate>Sat, 07 Nov 2020 15:40:59 +0800</pubDate><description><![CDATA[一、TCP"三次握手"
1.1 概括：
"三次握手"是指建立一个TCP连接时，需要客户端与服务器总共发送3个包。
进行三次握手的主要作用是确认客户端与服务器两方的发送能力与接收能力是否正常。
(连接服务器指定的端口，建立TCP连接，并同步双方的序列号和确认号)
1.2 流程图：
刚开始时：客户端处于 Closed 状态；服务器处于 Listen(监听) 状态

1.3 每次握手的目的：
第一次握手：客服端发送一个报文（SYN），服务器接收到了
结论：客户端的发送能力 和 服务器的接受能力没有问题

第二次握]]></description><category></category></item><item><title><![CDATA[MongoDB——详解   （个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109497182</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109497182</guid><author>str_lyc</author><pubDate>Fri, 06 Nov 2020 14:04:41 +0800</pubDate><description><![CDATA[一、MongoDB
简介：是一个基于分布式文件存储的数据库。
为 WEB 应用提供可扩展的高性能数据存储解决方案
（MongoDB 是一个介于关系数据库和非关系数据库之间的产品，
是非关系数据库当中功能最丰富，最像关系数据库的。将数据存储在内存里的）

MongoDB 将数据存储为一个文档，数据结构由键值(key=&gt;value)对组成。
MongoDB 文档类似于JSON 对象。字段值可以包含其他文档，数组及文档数组
特点：
1.MongoDB 文档数据库，存储的是文档。
2.MongoDB 的内部执]]></description><category></category></item><item><title><![CDATA[Python——单例模式    （个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109347175</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109347175</guid><author>str_lyc</author><pubDate>Wed, 28 Oct 2020 22:41:33 +0800</pubDate><description><![CDATA[Python——单例模式
实现方式：
1.装饰器实现单例模式
# 使用装饰器实现的单例模式；
“”“
创建外部函数 shoppingcar
    创建一个instances字典用来保存单例
    创建内部函数get_instance获取单利
        判断instances字典中是否已存在单利，
        若无则为第一次创建单利并保存在字典中，然后返回该单利
    返回内部函数名 get_instance
”“”
def shoppingcar(cls, *args, **kwargs):]]></description><category></category></item><item><title><![CDATA[Python——__new__()、__init__()区别     （个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109342061</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109342061</guid><author>str_lyc</author><pubDate>Wed, 28 Oct 2020 22:24:03 +0800</pubDate><description><![CDATA[一、__new__方法
特点：
1.静态方法
2.创建对象/实例，并且至少需要传递一个参数cls，此参数在实例化时由python解释器自动提供
3.必须要有返回值，返回创建的实例对象
在自己实现__new__()时需要注意：
1.可以return父类(通过super(当前类名，cls)).__new__出来的实例；此方法保证是当前类实例
2.直接使用object的__new__出来的实例

注意：
若__new__() 创建的是当前类的实例，会自动调用__init__()函数
class AA(object]]></description><category></category></item><item><title><![CDATA[Python——迭代器、生成器(与列表推导式比较优劣)、装饰器]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109320254</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109320254</guid><author>str_lyc</author><pubDate>Tue, 27 Oct 2020 22:12:05 +0800</pubDate><description><![CDATA[一、迭代器
定义：拥有 iter 和 next 方法的对象就是迭代器
迭代：是访问集合元素的一种方式，可以将集合元素中的数据’一个挨着一个取出来’叫迭代
（如for循环：–ter-- 方法返回一个迭代器，调用迭代器的–next-- 方法取值）
二、生成器
本质：就是迭代器
两种：生成器函数 与 生成器表达式
1.生成器函数
	一个包含yield关键字的函数就是一个生成器函数。并且yield不能和return公用，并且
yield只能用在函数内。
	1.生成器函数执行后得到一个生成器作为返回值，并不会执行函数]]></description><category></category></item><item><title><![CDATA[Python——排序(冒泡、选择、插入、快速、堆..)   时间复杂度     （个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109273738</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109273738</guid><author>str_lyc</author><pubDate>Sun, 25 Oct 2020 18:27:02 +0800</pubDate><description><![CDATA[一、时间复杂度
将程序执行的计算步骤的总和叫做时间复杂度
时间复杂度实际上用来描述算法时间效率
例：如T(n)=n2+5n+6与T(n)=4n2+2n+1它们的频度不同，但时间复杂度相同，都为O(n2)。随着问题规模n的不断增大，上述时间复杂度不断增大，算法的执行效率越低。
总结：大O表示法就是将一个T(n)时间复杂度的系数去掉只留下最特征的部分就是大O表示法。
二、排序
常用排序：冒泡排序、快速排序、插入排序、选择排序（希尔排序、归并排序、堆排序、基数排序）
——————————————
冒泡排序
思路：]]></description><category></category></item><item><title><![CDATA[Python——多线程开发 互斥锁 死锁 线程队列 全局解释器锁(GIL)     （个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109264189</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109264189</guid><author>str_lyc</author><pubDate>Sat, 24 Oct 2020 21:40:45 +0800</pubDate><description><![CDATA[前言：
数据共享：
进程是每一个进程中都存在一份
线程是共同一个数据，存在数据安全性问题
一、多线程开发——共享全局数据问题
多线程开发的时候共享全局变量会带来资源竞争效果，也就是数据不安全。
互斥锁/线程锁：
	当多个线程几乎同时修改一个共享数据的时候，需要进行同步控制，线程同步能够保证多个线程
安全的访问竞争资源(全局内容)，最简单的同步机制就是使用互斥锁/线程锁

threading模块中定义了  Lock类，可方便处理锁定
实例化：lock = threading.Lock()
获取锁(上锁)：lo]]></description><category></category></item><item><title><![CDATA[Python——HTTP/HTTPS TCP/IP 长连接 （个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109250676</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109250676</guid><author>str_lyc</author><pubDate>Fri, 23 Oct 2020 23:08:32 +0800</pubDate><description><![CDATA[一、HTTP 和 HTTPS
什么是HTTP
超文本传输协议
是一个基于请求与相应，无状态，应用层协议，基于TCP/IP协议传输数据
什么是HTTPS
是一种通过计算机网络进行安全通信的传输协议，经由HTTP进行通信，利用SSL/TLS建立全通信，加密数据包
TCP/IP 模型




应用层
HTTP数据




传输层
TCP首部-HTTP数据


网络层
IP首部-TCP首部-HTTP数据


链路层
以太网首部-TCP首部-HTTP数据


应用层使用HTTP协议- 传输层使用TCP协议 - 在网络]]></description><category></category></item><item><title><![CDATA[Python——进程、线程、协程、多进程 队列、多线程（个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109230853</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109230853</guid><author>str_lyc</author><pubDate>Thu, 22 Oct 2020 23:00:59 +0800</pubDate><description><![CDATA[一、进程 线程 协程
1.进程
一个运行的程序就是一个进程，没有运行的代码叫做程序。
进程是系统分配资源的最小单位，进程拥有自己独立的内存空间 相对独立，所以进程间的数据不共享，开销大。

2.线程
CPU调度执行的最小单位(程序真正执行的时候调用的是线程)，也叫执行路径，依赖于进程存在，
一个进程最小存在一个线程，叫做主线程
而多个线程共享进程内存资源(数据共享，共享全局变量)，从而极大地提高了程序的运行效率。

一个进程中可以有一个或多个线程。一个线程只属于一个进程。
一个进程中的多个线程是一种竞争关系]]></description><category></category></item><item><title><![CDATA[Python——is 与 ==（个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109211288</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109211288</guid><author>str_lyc</author><pubDate>Wed, 21 Oct 2020 22:17:26 +0800</pubDate><description><![CDATA[Python对象
python中对象包含三要素：id	type value
id：在内存中存储的位置；用来唯一标识一个对象
type：对象的数据类型
value：对象的值

is 与 == 的区别
is：用于判断两个变量引用对象是否为同一个，就是所引用的对象的内存地址id是否一致
==：用于判断引用变量的值是否相等，只判断值和数据类型

...]]></description><category></category></item><item><title><![CDATA[Python——深浅拷贝理解（个人向）]]></title><link>https://blog.youkuaiyun.com/str_lyc/article/details/109209756</link><guid>https://blog.youkuaiyun.com/str_lyc/article/details/109209756</guid><author>str_lyc</author><pubDate>Wed, 21 Oct 2020 21:45:40 +0800</pubDate><description><![CDATA[相关概念
	变量：是一个系统表的元素，拥有指向对象的连接空间
	对象：被分配的一块内存，存储其所代表的值
	引用：是自动形成的从变量到对象的指针
	————————
	python中变量的赋值其实就是变量的引用
	python没有拷贝这个变量，只是拷贝了这个变量的引用
	————————
	可变类型： 如 列表、字典..
	不可变类型： 如 数字、字符串、元组..

1.浅拷贝
a = [1,2]
b = a
print(a is b) #Ture

a.append(11)
print(a is b) #]]></description><category></category></item></channel></rss>