4yue 22
1
# 1 . 进程 线程 协程 之间的相同点和不同点
#相同点:都能帮助我们实现并发操作,规避IO时间,提高执行效率
#进程:内存隔离 操作系统级别 可以利用多核(高计算) 计算机中资源分配的最小单位
#线程:内存共享 操作系统级别 开销中 Cpython解释器下不能利用多核(规避IO) 计算机CPU调度的最小单位
#协程:内存共享 用户级别 开销小 不能利用多核(协程的本质是个单线程)(规避IO)
'''
操作系统级别:全世界的人都存储在大计算机上,他都知道哪个好那个坏
用户级别: 自己去判断哪个好哪个坏 switch 是手动添加的 gevent 里为什么没有? 因为他在底层添加了(可能是if)
'''
# 为什么不能删GIL锁
#垃圾回收机制 所以 cpython # 2 .进程内存之间是否共享,如何实现通信?
#不共享 通过python模块\第三方工具
# 本质上:
# 基于文件 :
#队列 管道 manager
# 基于网络
#第三方工具(redis kafka memcha) socket # 3在python 中是否线程安全
#不安全
#python 你写的python代码未来都会转换成机器码,机器码执行的过程中
#如果有一个非原子性操作,那么就会导致线程数据不安全
#需要手动加锁来解决问题 # 4 协程的本质是什么
#多个任务在一个线程上能够实现切换 (与IO无关利用协程实现的一个效果) #5 线程池开启任务 如何提交任务 获取返回值
'''
from concurrent.futures import ThreadPoolExecutor #这个模块开启线程池
def func(arg):
return arg*20
tp = ThreadPoolExecutor(5)
ret_l = []
for i in range(100):
ret = tp.submit(func,i) #这个是一个对象
ret_l.append(ret)
for r in ret_l :
print(r.result()) #打印
'''
#二
'''
from concurrent.futures import ThreadPoolExecutor #这个模块开启线程池
def func(arg):
return arg*20
tp = ThreadPoolExecutor(5)
ret = tp.map(func,range(100))
for r in ret :
print(r) # 没有返回值 直接打印 '''
#协程复习:
#数据是否安全 : 绝对安全
# 用户级别的 只能在代码上做 没法 swithch a+=1 swithch 没有把a+=1 分开
a = 1
def func1():
global a
a+= 1
def func2():
global a
a+=1
import dis dis.dis(func1)
dis.dis(func2) #和线程的关系
#本质上是一条线程
# gevent 模块
#g1 = spawn(协程函数,参数)
#g1.join #主程序里不遇到阻塞,不切到子程序里(一个协程) start没有用不执行
# gevent.joinall(iterable([g1]))
#monkey.patch_all() # greenlet switch
# 并没有减少IO操作 '''
def fun1():
start
sleep # 其实是自己实现了一个sleep,而没有用time的
end
def fun2():
begin
sleep1
finish
'''
# socket 底层就是用thread实现的 # 举一反三 做了一个 想象把他换成别的情境
# 问题
# 协程用的好 比线程的效率要好的多
# 协程的底层 IO切换 是 time
# 先把懂了的整理出来 再弄不懂得
2
#day 1 数据库的介绍安装 命令
#day 2 数据库的表操作
#day 3 数据库的数据操作,查询(单表\多表) 一天 ftp这几天 要做完
#day 4 查询和其它内容的拾遗
# day 5 索引原理 # 数据库在开发的过程中占据着什么样的位置?
#在整个项目中又有什么意义? # 我们把数据存储在文件里 (把数据永远存下来)
#写 write
#读 read
# 改 读-》写->删->改-》
# 数据库:(意义)
# 能够更加简单的 使用 存储在文件中的数据
# 查 一行数据 从userinfo 条件 id = 10 或者 id = 20
#简单 比那一行 要简单
#不止读写改 还优化了效率(?为什么 没听清 not listened)
# 能够更好地解决并发问题
#买票问题 你是为你的用户服务的 但是对于 数据库 你也是服务端
#python 中到处都是相对论
#自带的并发 不用自己写server
# 数据的统一问题 # 1,alex,alex3714 #一行内容就是一条数据
# 2,python,19800,6,months # 一条不同的数据 # 数据库 DataBase 简称DB
# 存储数据的地方, 我们把所有的数据都存储在一个固定的地方,那么这个地方就是数据库 #数据库管理系统 DBMS
#软件 需要我们安装一下
#能够帮助我们更好的管理
#和使用存储在硬盘上的数据
#操作系统
#硬盘上存储着数据 # 数据库 服务器
#什么是服务器 : 本质上就是一条计算机 (对外提供服务)
#当一台计算机上安装了某个人软件能够对外提供服务的时候,那么这台机器就成为服务器
#数据库服务器
#当这台机器上安装的服务是一个数据库的server ,就得到了一个。。。。 #数据库管理软件:管理-数据库
# 数据库管理员DBA
# (删库的人 有权限。。。)
#专门帮我们管理数据库 并且优化数据库的工作人员
# 数据库 技术的发展
#纸 上表格
#excel
#软件 批处理 软件:(把你频繁的要做的变成机器去做了) # mysql 就是一个DBMS(能够管理硬盘上数据的一个软件)
# 通过固定的简单的指令 帮助我们完成从文件中查找对应数据的软件
#mysql不好用,自己写,程序员的责任 好用就算了 不想用别的找不到缺点
#软件那个没有缺点,就像人一样,一秒变笨,改错则少
#无知才会求知 有错才会改错
#笨才会求聪明
#oracle 也是一个DBMS # 数据库 管理系统的作用
#关系型数据库 (mysql\oracle\sql server(微软里的底层服务) \sqllite)
#(关系比较紧) # 这几个用法都差不多 都是传上去 拉下来 不同的相同的
# (每个每个都对应 肯定慢)
#id name age phone_num
#是有关系的 彼此之间
#知道了一个人的名字能不能获取到他的年龄,
#知道了一个人的电话号码,能不能获取到姓名 #非关系型数据库 (redis\ mongodb)
#既可以完成通信也可以。。。 mon智能机器人(选修第四个)轻量级
#(效率高 1对多 )
#key : value key---> value 只知道value找不到key
#只有一个找所有 # mysql 开源的软件 -小公司 各种互联网公司(二次开发之后)
#开源 可能有的漏洞 被人操作了
#很多地方不如oracle 严谨
#金融公司 不会使用mysql存储数据的 。。。数据库被泄露了 只就是一个数字了。。。
#oracle 付费的
#金融行业(绝对安全)
#国企事业单位
#sql server 在学校里教学使用的
传的话 可能会出错,不要相信任何人的软件 从官网上安装最安全
以后进公司
3员工系统
#写一个员工管理软件 #1,alex,38,1233333333,过气网红讲师
#2,wusir,74,1388888888,python讲师
# 查name,id 从 userinfo 条件 age = 83
# 查number, 从 userinfo 条件 name = 'wusir' # 自己去处理文件 很复杂?
下午
c://>mysqld install #mysqld.exe install #要安装mysql的server端
c://>net start mysql #开启mysql #相同的 net stop mysql 结束mysql #重启
#启动的是server端。。。(第一次默认之后一直开启的状态(减少重复))
c://> mysql -uroot -p # mysql -uroot #没有密码的情况下用root用户登录
#启动的是client端。。。
password: # 输入回车 #默认没密码
#测试一下配置文件生效了没有
mysql>select user();查看当前用户
mysql>show variables like '%charac%' # 输出 是utf-8什么的
exit #退出
; # 结束符
环境变量 也是变量。。。
就像是全局变量
只要mysql不是内部或外部命令,也不是可运行的程序
说明没有设置 不是全局的
数据库的安装和卸载
# 问题
# 1. D:\mysql\mysql-5.6.43-winx64安装目录中不能有空格和中文
# 2. my.ini文件是不是utf-8
# 3. 配置文件里的每一个路径的最后 是不是有看不见的空格
# 4. 文件的名 my.ini
# 5. 安装包 # 卸载
# D:\mysql\mysql-5.6.43-winx64\mysqld remove 移出服务
# 把mysql整个文件都删掉\环境变量也删掉
# 重启电脑 # 最后的两招
# 1.换一个目录装
# 2.vc运行库 # 一堆命令
# 什么是环境变量?
# 当我们执行一个系统中的可执行文件的时候
# 例如 mysql.exe或者 mysqld.exe或者python.exe
# 如果我们不配环境变量,
# 那么就需要进入mysql.exe所在的目录去执行
# 或者带着这个文件的绝对路径去执行
# 我们经常要执行这些文件
# 所以把文件的路径添加到环境变量中
# 就可直接输入文件名来执行程序了
# mysqld install
# mysqld.exe install 要安装mysql的server端
# net start mysql 启动server端
# mysql -uroot -p 启动client端 # 重启server
# net stop mysql
# net start mysql # client端的启动
# c://>mysql -uroot 表示没有密码的情况下用root用户登录
# c://>mysql -uroot -p 表示使用密码登录
# Enter password:输入密码,如果没有密码直接回车 # mysql > select user(); 查看当前用户
# set password = password('123');给当前用户设置密码 # 查看当前的所有数据库
# mysql > show databases; # root用户在mysql当中相当于管理员用户
# 其他的程序员想要使用数据库来存储项目数据,不能给他权限最高的管理员用户 # 可以创建用户 并且给用户授权
# create user 'eva@192.168.16.%';
# create user 'eva@192.168.16.%' identified by '123'; # 既可以给一个已经存在的用户授权,也可以给一个不存在的用户创建并授权
# grant 权利 on 数据库名.表名 to '用户名@ip地址'
# grant 权利 on 数据库名.表名 to '用户名@ip地址' identified by '123';
# 权利 : SELECT INSERT UPDATE DELETE ALL # 创建一个数据库 s20_day1
# create database s20_day1; # 创建一个stu用户 密码是123 ip地址是192.168.16网段的所有机器
# 能对这个数据s20_day1做增删改查的所有操作
# grant all on s20_day1.* to 'stu@192.168.16.%' identified by '123'; # 192.168.16.13
# mysql -ustu -h192.168.16.13 -p
# # grant all on s20_day1.* to 'stu'@'192.168.16.%' identified by '123';
# 用户名 密码 ip地址
# mysql -u用户名 -hip地址 -p
# 密码 # ddl语言
# 文件夹(数据库)的增删改查
# 创建数据库
# create database 数据库名;
# 使用数据库
# use 库名;
# 查看数据库下有哪些表
# show tables; # 表的增删改查
# 创建表
# create table 表名(字段名 数据类型(长度),字段名2 数据类型(长度),..)
# 查看表结构
# desc 表名;
# 修改表
# alter table t1 change name username char(12);
# 删除表
# drop table t1; # dml语言
# 数据的增删改查
# 增加
# insert into 表名 values (值1,值2,...); 插入一条数据
# insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...); 插入多条数据 # 查看数据
# select * from 表名; # 修改数据
# update 表 set 字段名=值 where 条件; # 删除数据
# delete from 表 where 条件;
4yue 22的更多相关文章
- CENTOS 6.5 平台离线编译安装 Mysql5.6.22
一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...
- EC笔记:第4部分:22、所有成员都应该是private的
EC笔记:第4部分:22.所有成员都应该是private的 更简单的访问 用户不用记得什么时候该带上括号,什么时候不用带上括号(因为很确定的就要带上括号) 访问限制 对于public的成员变量,我们可 ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验
在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...
- Fedora 22中的Services and Daemons
Introduction Maintaining security on your system is extremely important, and one approach for this t ...
- Fedora 22中的RPM软件包管理工具
Introduction The RPM Package Manager (RPM) is an open packaging system that runs on Fedora as well a ...
- Fedora 22中的用户和用户组管理
The control of users and groups is a core element of Fedora system administration. This chapter expl ...
- Fedora 22中的日期和时间配置
Introduction Modern operating systems distinguish between the following two types of clocks: A real- ...
- Fedora 22中的DNF软件包管理工具
Introduction DNF is the The Fedora Project package manager that is able to query for information abo ...
随机推荐
- MySQL Tips
MySQL中的一些Tips,个人总结或者整理自网络 不明白为什么MySQL的很多材料中总是喜欢把联合(复合)索引和覆盖索引放在一块说事? 1,联合索引是一种索引的类型,指创建索引的时候包含了多个字段. ...
- 将ipad作为电脑拓展屏或分屏的简单方法
用Ipad实现电脑分屏的方法是挺简单的,但鉴于部分小白找不到合适的门路,在此重新分享一下. 需要的装备: ipad 电脑 数据连接线 方法:某宝上搜索 duet display ,只需1元左 ...
- linux上部署jenkins步骤小记
一.部署jdk环境 1.下载jdk包,解压,放在选定的位置,我本次jdk包放置在“/usr/local/java/jdk” 目录下 2.配置环境变量 1)打开/etc/profile文件,在命令框中输 ...
- 微信小程序 app.json文件配置
https://developers.weixin.qq.com/miniprogram/dev/index.html 起步 https://developers.weixin.qq.com/min ...
- SSM商城项目(十三)
1. 学习计划 1.订单系统 2.提交订单 3.MyCAT 2. 订单系统 2.1. 功能分析 1.在购物车页面点击“去结算”按钮跳转到订单确认页面. a) 展示商品列表 b) ...
- 【原创】qlogic网卡软中断不均衡问题分析
引子 使用qlogic QL45000网卡测试业务性能,发现cpu软中断分布不均衡,而且很有规律,导致cpu空闲也不是很均衡, 会影响业务稳定性. 设备使用3张网卡Qlogic网卡,配置为4*25G模 ...
- 复杂JSON对象的查询与合并
一个表里存放了全国各地地区.省.市.县区的数据,为了提高加载速度我保存成了本地的JSON文件 结构大致如下: [{ "text": "中华人民共和国", &qu ...
- 大数据入门到精通18--sqoop 导入关系库到hdfs中和hive表中
一,选择数据库,这里使用标准mysql sakila数据库 mysql -u root -D sakila -p 二.首先尝试把表中的数据导入到hdfs文件中,这样后续就可以使用spark来dataf ...
- 解题(DirGraCheckPath--有向图的遍历(深度搜索))
题目描述 对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径. 给定图中的两个结点的指针DirectedGraphNode* a, DirectedGraphNode* b(请不要在意数据类 ...
- Linux - Ubuntu 图形界面入门
Ubuntu 图形界面入门 目标 熟悉 Ubuntu 图形界面的基本使用 01. Ubuntu 的任务栏 02. 窗口操作按钮 03. 窗口菜单条 ——本文源自<黑马程序员>