zoukankan      html  css  js  c++  java
  • Python学习笔记十一

    1. 协程

       并发的解决方案:

        多进程

           多线程

           什么叫并发:看起来同时进行

        如何实现并发:切换+保存状态

        进程线程都是由操作系统调度的

                协程:单线程下实现的并发,应用程序级别的切换,操作系统无法感知

        找到一个解决方案:1.在多个任务直接切换+保存状态

                 2.检测应用程序的IO,实现遇到IO才切换。

                并发提高效率:遇到IO的时候切换,才能提高效率,如果是计算,就不会提高效率。

        yield:能实现协程,但是不能提高效率。

        greenlet:需要pip3 install greenlet

                from greenlet import greenlet

        g1=greenlet()

        g1.switch()

    2.        gevent()

        安装:pip3 install gevent

                from gevent import monkey

                monkey.patch_all()         这两行代码写到文件的首部

                import gevent

                gevent.sleep(2)

        g1=gevent.spawn(eat,name='egon')

        g2=gevent.spawn(play,'alex')

                g1.join()

                g2.join()

    3.         利用gevent写一个socket连接。

        单线程实现并发连接

    4.         socketserver模块

        基于TCP

           import socketserver

           class MyTCPhandler(socketserver.BaseRequestHandler):            #通信

                          def hanler(self):

                   while True:

               data=self.request.recv(1024)

               self.request.send(data.upper())

        if __name__=='__main__':

          socketserver.ForkingTCPServer      #windows不能使用多进程模式

          s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyTCPhandler)

          s.server_forever()

        基于UDP:

       

                import socketserver

           class MyTCPhandler(socketserver.BaseRequestHandler):            #通信

                          def hanler(self):

                   client_data=self.request[0]

              self.request[1].sendto(client_data.upper(),self.client_address)

        if __name__=='__main__':

          socketserver.ForkingTCPServer      #windows不能使用多进程模式

          s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyTCPhandler)

          s.server_forever()

    5.   数据库介绍及mysql安装

       yum install mysql_server mysql -y

       

    6.     mysql的基本管理

       mysql -h127.0.0.1 -uroot -p

               mysqld --install

               设置密码:

          mysqladmin -uroot -p password "123";

          破解密码:

       net stop mysql

       mysqld --skip-grant-tables 跳过授权表

          mysql -uroot -p

       update mysql.user set password=password('') where user='root' and host='localhost';

          flush privileges;

                修改my.ini配置文件。

           在mysqld里面设置:skip-grant-tables

        [mysqld]

           [mysql]   mysql自带的客户端

        user='root'

        password='123'

           [client]    所有的客户端

           user='root'

        password='123'

                建立账号:

          grant select,update on *.* to

    7.      mysql的基本sql语句

               库   增删改查

       表   增删改查

          记录   增删改查

    8.        mysql的存储引擎

        innodb

    9.        mysql的数据类型:

          数字类型:

          整型:默认有符号,指定无符号:unsigned

            int  

            tinyint

            bigint

          浮点型

             float

             double

             decimal

          字符类型

          char

          varchar

       时间类型

          date

          time

          datetime

          timestamp

          year

       枚举类型

          enum

          setn       

          

  • 相关阅读:
    屏蔽2003:在系统启动时至少有一个服务或驱动程序产生错误
    C#中有关string和byte[]转换的问题
    如何控制winform程序只能打开一个呢?
    ArrayList的使用方法【转载】
    ASP.NET中ajaX学习记录
    C#去除字符串空格的几种方法【转载】
    C# 中2,10,16进制及其ASCII码之间转化
    vc++下char数组赋值乱码问题
    c#关机时自动退出程序
    Android入门前言(一)之Android应用开发入门五问 (转自:http://blog.csdn.net/android_tutor/)
  • 原文地址:https://www.cnblogs.com/yangjianbo/p/7934834.html
Copyright © 2011-2022 走看看