金沙国际官网_金沙国际平台登录

因为这个金沙国际官网_金沙国际平台登录网站与很多的大型澳门赌场都有合作,金沙国际官网_金沙国际平台登录尽职尽责,高效执行,保持好奇心,不断学习,追求卓越,点击进入金沙国际官网_金沙国际平台登录马上体验吧,所以现在也正式地开始了营业。

您的位置:金沙国际官网 > 编程 > Python入门导学,多线程编程系列

Python入门导学,多线程编程系列

发布时间:2019-10-28 22:03编辑:编程浏览(161)


    1、 Python入门导学

    泛型的约束

    五、相关链接

    附上购买地址,大家还是多多支持正版.

    《MULTITHREADING WITH C# COOKBOOK SECOND EDITION》购买地址

    补充,本书有中文翻译版本,由黄博文大佬翻译,但是好像还是第一版。

    《C#多线程编程实战》购买地址

    1.2 Python特点

    1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

    2.易于阅读:Python代码定义的更清晰。

    3.易于维护:Python的成功在于它的源代码是相当容易维护的。

    4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

    5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

    6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

    7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

    8.数据库:Python提供所有主要的商业数据库的接口。

    9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

    10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

    注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
    若您觉得这篇文章还不错,请点击下右下角的【推荐】,非常感谢!

    目录

    1.3.1 Web程序开发

      Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。使用Python语言编写的Gunicorn作为Web服务器,也能够运行Python语言编写的Web程序。Python定义了WSGI(Web Server Gateway Interface)标准应用接口来协调Http服务器与基于Python的Web程序之间的沟通。一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可以让程序员轻松地开发和管理复杂的Web程序。

       Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络蠕虫。第三方库Twisted支持异步在线编写程序和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。另有gevent这个流行的第三方库,同样能够支持高性能高并发的网络开发。

    public class GenericFunc
    {
        public void FanXingFunc<T>(T obj)
        { 
            var name = GetPropertyValue(obj, "Name");
            Console.WriteLine(name); 
        }
        public object GetPropertyValue(object obj, string name)
        {
            object drv1 = obj.GetType().GetProperty(name).GetValue(obj, null);
            return drv1;
        }
    }
    

    一、前言

    在C#学习过程中,多线程一直都是比较难的部分,因为其中涉及到很多与操作系统相关的知识。比如:如何进行多线程编程、线程同步、线程锁、线程异步、并行编程、并行集合等等的知识。所以笔者在学习过程中也是遇到了重重困难,而且一直没有好的教程。

    但是笔者在浏览GitHub时,发现有大佬已经推荐了一本新书,《MULTITHREADING WITH C# COOKBOOK SECOND EDITION》,其中主要就是讲如何在C#中使用多线程的。看到这本书笔者是如获珍宝,终于能有机会系统的学习多线程相关的知识了。

    于是便有了这一个开篇,这个更多的是阅读这本书的笔记和一些按照书本上写的范例程序,当然也会有一些自己的思考。

    1.1 Python概念

    Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/) 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

    Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

    Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

    Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。

    Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

    Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

    但事实上,我们的系统永远只有更复杂,更复杂,更复杂。因此泛型才有了用武之地。

    二、目录结构

    本书一共分为十一个章节,分别从线程基础、线程同步、线程池、Task并行库、C# 6.0特性、并发集合类、PLINQ、反应式编程、异步I/O、并行变成模式和在UWP .Net Core中应用来完成的介绍了C#多线程编程。如下图所示。

    图片 1

    附上百度脑图链接

    笔者认为本书真的是一本不可多得的好书,回想起那段被多线程虐过的日子。粗略的过了一遍以后就打算马上拿出来分享给大家,后文有相关的购买链接,大家也可以直接在某宝、某东搜索关键字,价格也是比较便宜的,多多支持正版。

    1.3.3 其他

      NumPy、SciPy、Matplotlib可以让Python程序员编写科学计算程序。有些公司会使用Scons代替make构建C++程序。

      很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。很多游戏,如EVE Online使用Python来处理游戏中繁多的逻辑。

      YouTube、Google、Yahoo!、NASA都在内部大量地使用Python。OLPC的作业系统Sugar项目的大多数软件都是使用Python编写。

    因此Python的应用范围大概分为:数据分析、系统编程、组件集成、网络服务、图像处理、数值计算和科学计算。

     

     

     

     

    下面定义了一个普通类和一个泛型类,我们可以明确看到泛型类和普通类最大的区别就是多了一个<T>。

    四、章节结构

    本书主要是偏实践应用一些,其中每个章节中的技术说明都分为三个部分,准备工作(Getting ready)、实现方式(How to do it...)和实现原理(How it works...)

    本文节节选第一章的第一小节举例,首先是准备工作。

    1.准备工作

    图片 2

    2.实现方式

    图片 3图片 4

    3.实现原理

    图片 5

    国外的书一般都是比较偏理论,像这种理论和实践结合的还是比较少,所以第一时间推荐给大家。

    1.3 Python 应用场景

    如果只是定义一个类,调用一个属性,那泛型的存在就是鸡肋。

    • 系列大纲
    • 一、前言
    • 二、目录结构
    • 四、章节结构
    • 五、相关链接

    1.3.2 GUI开发

       Python本身包含的Tkinter库能够支持简单的GUI(Graphical User Interface)开发。但是越来越多的Python程序员选择wxPython或者PyQt等GUI包来开发跨平台的桌面软件。使用它们开发的桌面软件运行速度快,与用户的桌面环境相契合。通过PyInstaller还能将程序发布为独立的安装程序包。

       在很多操作系统里,Python是标准的系统组件。大多数Linux发布版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端机下直接运行Python。有一些Linux发布版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器、Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用作业系统功能的库。通过pywin32这个第三方软件包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。

    当显示声明这个约束的时候,定义会限制泛型的类型。

    系列大纲

    目前只整理到第二章,线程同步,笔者后面会慢慢更新,争取能把这本书中精华的知识都分享出来。
    C#多线程编程系列(一)- 简介
    C#多线程编程系列(二)- 线程基础
    C#多线程编程系列(三)- 线程同步
    C#多线程编程系列(四)- 使用线程池
    C#多线程编程系列(五)- 使用任务并行库

    源码下载点击链接 示例源码下载

    public static void Excute()
    {
        Generic<int> gs = new Generic<int>();
        gs.Name = 518;
    }
    

    看到这里,有些同学可能会觉得泛型很复杂,连使用其对象下的属性,都得反射,太繁琐了,还不如不用呢。

    泛型类跟普通类的使用方式一样,都需要实例化对象,再由对象来调用内部的属性或方法。

    图片 6

    下面代码定义了一个Int类型的泛型Generic。

    然后,你就没有然后了。

    输出结果如下:

    泛型的使用

    泛型的定义

    C#语法——元组类型

    泛型的应用,开篇已经说了,主要用在提高代码的可重用性、类型安全性和效率上。

    public static void Excute()
    {
        Generic<int> gs = new Generic<int>();
        gs.Name = 518;
        Generic<Task> gsTask = new Generic<Task>();
        gsTask.Name = new Task(()=> {
            Console.WriteLine("Kiba518");
        });
    }
    
    public class Generic<T>
    {
        public T Name = default(T); 
    }
    

    所以,这个<T>就标记了,这个类是泛型类。其中这个T,也可以写成A,B,C,D或其他字符。

    本文由金沙国际官网发布于编程,转载请注明出处:Python入门导学,多线程编程系列

    关键词: