01 2020 档案

摘要:1.用户权限:新创建的用户没有库,如果想让新用户访问我的库,必须给它授权才可以。我在使用的navicat要关闭新用户的连接才可以授权给它。 1.创建用户 create user 'hanshe'@'127.0.0.1' identified by '123'; -- 创建用户 2.移除用户 drop 阅读全文
posted @ 2020-01-14 11:27 梁劲雄 阅读(187) 评论(0) 推荐(0) 编辑
摘要:1. 什么是数据库 存储数据的仓库 2. 什么数据: 大家所知道的都是数据.比如:你同学的名字,年龄,性别等等 3. 数据库概念 1.数据库服务器 2.数据库管理系统 重点 3.库 4.表 5.记录 6.数据 参考画图 4.环境安装:安装好之后,记得设置环境变量,控制面板-系统-高级系统设置-环境变 阅读全文
posted @ 2020-01-12 10:07 梁劲雄 阅读(178) 评论(0) 推荐(0) 编辑
摘要:#1、from concurrent import futures可以开启进程池和线程池。concurrent是包,futures是模块,ThreadPoolExecutor是类,submit是方法。 #submit创建和开启子线程: from concurrent import futures i 阅读全文
posted @ 2020-01-02 23:37 梁劲雄 阅读(158) 评论(0) 推荐(0) 编辑
摘要:#1、线程的队列是使用import queue,如果使用from threading import Queue会报错,因为threading模块没有Queue。 #也就是说,线程队列Queue是在queue模块里面,不在threading模块里面。 import queue q = queue.Qu 阅读全文
posted @ 2020-01-02 23:35 梁劲雄 阅读(142) 评论(0) 推荐(0) 编辑
摘要:#条件:Condition、notify通知、notify_all、wait #条件 = 递归锁 + wait功能 #条件可以让主线程控制多少个子线程可以执行。 import threading def play(con,i): con.acquire() #所有人都拿到了钥匙 con.wait() 阅读全文
posted @ 2020-01-02 23:34 梁劲雄 阅读(173) 评论(0) 推荐(0) 编辑
摘要:#1、定时器: from threading import Timer def func(): print('定时器') t = Timer(1,func) #定时一秒,开启func线程。 t.start() #2、睡眠时间短,线程一直开着,每一秒打印出@@@: from threading imp 阅读全文
posted @ 2020-01-02 23:33 梁劲雄 阅读(96) 评论(0) 推荐(0) 编辑
摘要:#1、Event里面有一个标志flag,当e = Event()刚创建的时候,flag=False,阻塞,这个时候,e.is_set()也是等于False,阻塞。 #e.set()让flag变成非阻塞,e.clear()让flag变成阻塞。 #e.wait() 当flag=True,非阻塞;当fla 阅读全文
posted @ 2020-01-02 23:31 梁劲雄 阅读(113) 评论(0) 推荐(0) 编辑
摘要:#1、信号量,用来保证多个线程不会互相冲突。 #2、迷你唱吧:每次只能有两人在里面唱k: from threading import Thread from threading import Semaphore import time import random def sing(i,sem): s 阅读全文
posted @ 2020-01-02 23:28 梁劲雄 阅读(111) 评论(0) 推荐(0) 编辑
摘要:#1、锁:防止多个线程同时读写某一块内存区域。 from threading import Thread from threading import Lock def func(): global n lock.acquire() n -= 1 #每一个线程在操作数据之前先拿到钥匙,操作完成之后,释 阅读全文
posted @ 2020-01-02 23:27 梁劲雄 阅读(166) 评论(0) 推荐(0) 编辑
摘要:#1、守护线程要注意的坑:下面代码只能打印出子线程开始,无法打印出子线程执行完毕,因为主线程在t.start()以后就结束了, #而子线程要睡眠1秒,所以子线程守护线程随着主线程的结束而结束了。 from threading import Thread import time def func(): 阅读全文
posted @ 2020-01-02 23:26 梁劲雄 阅读(126) 评论(0) 推荐(0) 编辑
摘要:#server: import socket from threading import Thread def func(conn): conn.send(b'hello client') ret = conn.recv(1024).decode('utf-8') print(ret) conn.c 阅读全文
posted @ 2020-01-02 23:24 梁劲雄 阅读(184) 评论(0) 推荐(0) 编辑
摘要:#1、开启线程: from threading import Thread import os def func(): print('func',os.getpid()) t = Thread(target=func) t.start() print(os.getpid()) # func 1045 阅读全文
posted @ 2020-01-02 23:23 梁劲雄 阅读(159) 评论(0) 推荐(0) 编辑
摘要:#1、进程:程序不能单独运行,要将程序加载到内存当中,系统为它分配资源才能运行,而这种执行的程序就是进程。 #程序和进程的区别在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。 #在多道编程中,允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发的 阅读全文
posted @ 2020-01-02 23:21 梁劲雄 阅读(103) 评论(0) 推荐(0) 编辑
摘要:#进程池Pool:apply apply_async-close-join-get map callback #1、进程池Pool:执行下面代码发现任务012先执行,345后执行,因为进程池只有3个进程,6480进程先处理1,接着处理3和5。 # 可以设置线程的数量去轮流执行它的任务:例如下面例子设 阅读全文
posted @ 2020-01-02 23:20 梁劲雄 阅读(129) 评论(0) 推荐(0) 编辑
摘要:#1、管道Pipe:双向通信: from multiprocessing import Pipe p1,p2 = Pipe() p1.send('hello') print(p2.recv()) p2.send('hi') print(p1.recv()) # hello # hi #2、当管道一端 阅读全文
posted @ 2020-01-02 23:19 梁劲雄 阅读(86) 评论(0) 推荐(0) 编辑
摘要:#1、队列的数据是安全的,因为队列内置了一把锁,大家都来抢占资源的时候,A在操作数据的时候,B就无法操作该数据。 # 下面代码有两个生产者和三个消费者,包子吃完之后,接着放的两个None被marry和alex吃到了,所以吃饱了,剩下的牛奶,tom吃完。 # 放在队列里面的None的数量需要根据生产者 阅读全文
posted @ 2020-01-02 23:16 梁劲雄 阅读(143) 评论(0) 推荐(0) 编辑
摘要:#队列Queue:进程之间数据是隔离的,不共享的,但是通过multiprocessing的Queue可以实现进程之间的通信。 #1、先进先出:把1 2 3放到队列里,按1 2 3的顺序拿出来。 from multiprocessing import Queue q = Queue() q.put(1 阅读全文
posted @ 2020-01-02 23:15 梁劲雄 阅读(126) 评论(0) 推荐(0) 编辑
摘要:#1、事件Event:以交通灯为例。可以控制所有进程等待或者运行。 from multiprocessing import Event e = Event() #实例化一个事件,创建一个交通灯,默认是红灯,阻塞。 e.set() #红变绿,非阻塞。可以控制所有进程通行。。 e.wait() #停的时 阅读全文
posted @ 2020-01-02 23:13 梁劲雄 阅读(128) 评论(0) 推荐(0) 编辑
摘要:#1、锁:房间的门上有一把锁,锁上有一把钥匙,一个人使用这把钥匙开锁之后,带上钥匙进入房间,把门给反锁了,他在房间干活, # 只要他不出来还锁,别人是无法进入房间的。同时只能有一个人在房间里干活。效率低,但能保证数据安全。 # 锁 在并发编程中保证数据安全。 #多进程实现并发:多进程就是同时开启多个 阅读全文
posted @ 2020-01-02 23:10 梁劲雄 阅读(147) 评论(0) 推荐(0) 编辑
摘要:#1、server端跟多个client端聊天: #异步操作,主进程负责接收client的连接,子进程负责跟client聊天。 #每接收一个连接,就创建一个子进程,子进程之间的数据是隔离的,互不影响,所以server端可以跟多个client端聊天。 #server: import socket fro 阅读全文
posted @ 2020-01-02 23:07 梁劲雄 阅读(139) 评论(0) 推荐(0) 编辑
摘要:#1、异步非阻塞: import os from multiprocessing import Process def func(): print('子进程:',os.getpid()) if __name__ == '__main__': p = Process(target = func) #创 阅读全文
posted @ 2020-01-02 23:04 梁劲雄 阅读(113) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示