常见数据类型
1.列表 2 字符串 3 字典 4 集合
进程
什么是进程
1.进程是资源分配最小单位,资源:分配内存,进程就是运行在内存中的
2.一个运行起来的程序就是一个进程? 程序:存储在硬盘中的可执行代码
3.进程拥有独立的资源,进程之间的数据相互间隔,不能共享
进程间如何共享数据
1.利用queues实现父进程到子进程的数据传递 父子进程通信
2.使用管道pipe实现两个进程间的传递 Python的进程进程间
3.Managers实现很多进程间数据共享 Python的进程进程间
4.借助redis中间件进行数据传递 不同语言的进程通信
什么是线程
1.线程是操作系统调度的最小单位
2.它被包含在进程中,是进程中的实际运作单位
3.同一个进程下线程共享资源
什么是线程锁
1.作用是防止多个线程修改同一资源导致数据混乱
2.对一个数据加了线程锁,其他数据没有读取的权限
3.只要当前线程计算完成主动释放锁,其它线程才有对其操作的权限
GIL全局解释器锁
1.在全局解释器中,保证同一时间仅有一个线程运行
2.保证同一时间内只有一个线程可以修改数据,其它所有线程都可以读取
什么是协程
1.协程是微线程,纤程
2.特点:可以在单线程中处理并发的事物
3.遇到I/O就自动切换
3.1 普通线程遇到I/O就会阻塞,等待,不能处理其它事情
3.2 协程遇到I/O自动切换到下一个函数,不会等待和阻塞,所以可以处理并发的事务
什么是I/O
1.把硬盘或者网络中的数据读取到内存中叫做I/O操作
协程两个模块
1.greenlet 遇到I/O手动切换
2.gevent 遇到I/O自动切换
协程与线程区别
1.协程遇到I/O自动切换,线程遇到I/O阻塞
2.协程拥有自己的寄存器和栈不需要上下文操作,线程把切换状态保存到
CPU的栈中,需要上下文切换,所以耗时
sellect,poll,epoll
1.sellect 1.最多能监视监控1024个链接