自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

smilejiasmile的博客

Coding your imagine

  • 博客(360)
  • 资源 (1)
  • 收藏
  • 关注

原创 这将是一个新的世界

智能社会,互联互通 Part One  这是一个以汇集资源以及共享社区的 HOME. 在这里你可以通过评论的方式跟我互动,或者通过 Email 或者 WeChat 公众号等多种方式联系到我。我们将会共建社区、这将是一个自由、开源、价值共享、信息互惠的年轻人的社区。在这里我们可以真诚的交流想法、分享知识及其见解、消除人性偏见的障碍,构建真正有效的对话模式,让信息在你我的脑中自由的...

2019-05-25 14:38:35 224

转载 linux 创建一个垃圾篓防误删及其误删文件恢复

一、创建一个垃圾篓给你的linux创建一个垃圾篓/回收站,防误删创建一个垃圾回收站,保存被删除距今3天的文件,过期则被删除1. 在你的主目录下,创建文件夹 .trashcd ~mkdir .trash2. 在你的常用脚本目录下创建这俩脚本#!/bin/bashTRASH_DIR="/home/lixy/.trash"for i in $*; do STAMP=`date +%s` fileName=`basename $i` if [[ -d

2021-11-05 14:46:29 16

转载 Linux 文件系统之 inode 概述

inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。下面就是我的inode学习笔记,尽量保持简单。理解inode作者:阮一峰一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取

2021-11-05 14:41:38 17

转载 (四)Go 语言编译流程简述

一、概述Go 语言编译的最后一个阶段是根据 SSA 中间代码生成机器码,这里谈的机器码是在目标 CPU 架构上能够运行的二进制代码,中间代码生成一节简单介绍的从抽象语法树到 SSA 中间代码的生成过程,将近 50 个生成中间代码的步骤中有一些过程严格上说是属于机器码生成阶段的。机器码的生成过程其实是对 SSA 中间代码的降级(lower)过程,在 SSA 中间代码降级的过程中,编译器将一些值重写成了目标 CPU 架构的特定值,降级的过程处理了所有机器特定的重写规则并对代码进行了一定程度的优化;在 S

2021-10-14 18:36:07 34

转载 WebAssembly 系列(五)为什么 WebAssembly 更快?

翻译原文:http://huziketang.com/blog/posts/detail?postId=58c8b98da6d8a07e449fdd25英文原文:What makes WebAssembly fast?本文是关于 WebAssembly 系列的第五篇文章(本系列共六篇文章)。如果你没有读先前文章的话,建议先读这里。如果对 WebAssembly 没概念,建议先读这里。上一篇文章中,我介绍了如何编写 WebAssembly 程序,也表达了我希望看到更多的开发者在自己的工程中同时.

2021-10-14 18:10:11 16

转载 (三)Clang/ LLVM编译流程简述

LLVM概述 LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time) 以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。 传统编译器设计 编译器不同于解释器,解释器可以将高级语言边转译边执行。但是编译器需要将所有的源代码编译成机器代码之后,然后才能执行,所以如图不管传统的还是LLVM都一定是源代码输入,输出是机器代码(..

2021-10-14 18:07:10 36

原创 (二) GNU/GCC 编译器及其编译流程概述

GNU/GCC编译过程可以被细分为四个阶段:◆ 预处理(Pre-Processing)◆ 编译(Compiling)◆ 汇编(Assembling)◆ 链接(Linking)Linux程序员可以根据自己的需要让GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件 进行控制,以便通过加入不同数量和种类的调试代码来为今后的调试做好准备。和其它常用的编译器一样,GCC也提供了灵活而强大的代码 优化功能,利用它可以生成执行效率更高的代码。g...

2021-10-14 18:03:59 65

原创 (Outlook) 详解三大编译器:gcc、llvm 和 clang

编译器一般构成传统的编译器通常分为三个部分,前端(frontEnd),优化器(Optimizer)和后端(backEnd)。在编译过程中,前端主要负责词法和语法分析,将源代码转化为抽象语法树;优化器则是在前端的基础上,对得到的中间代码进行优化,使代码更加高效;后端则是将已经优化的中间代码转化为针对各自平台的机器代码。GCCGCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。GCC 原名为 GNU C 语言编译器,因为它原本只能.

2021-10-14 17:34:16 190

转载 区块链安全-以太坊智能合约静态分析

Gao Feng of Qihoo 360 IceSword LabHuang Shao Mang of Qihoo 360 IceSword Lab概述目前,以太坊智能合约的安全事件频发,从The DAO事件到最近的Fomo3D奖池被盗,每次安全问题的破坏力都是巨大的,如何正确防范智能合约的安全漏洞成了当务之急。本文主要讲解了如何通过对智能合约的静态分析进而发现智能合约中的漏洞。由于智能合约部署之后的更新和升级非常困难,所以在智能合约部署之前对其进行静态分析,检测并发现智能合约中的漏洞,可以最

2021-09-10 10:13:16 51

原创 Scrapy 爬虫框架五—— 常见的反爬虫技术

爬虫的本质就是“抓取”第二方网站中有价值的数据,因此,每个网站都会或多或少地采用一些反爬虫技术来防范爬虫。比如前面介绍的通过 User-Agent 请求头验证是否为浏览器、使用JavaScript动态加载资源等,这些都是常规的反爬虫手段。下面针对更强的反爬虫技术提供一些解决方案。IP 地址验证有些网站会使用 IP 地址验证进行反爬虫处理,程序会检查客户端的 IP 地址,如果发现同一个 IP 地址的客户端频繁地请求数据, 该网站就会判断该客户端是爬虫程序。针对这种情况,我们可以让 ..

2021-09-01 18:11:06 93

原创 Scrapy 爬虫框架四 —— 动态网页及其 Splash 渲染

一、前言动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送给我们客户端二、问题分析scrapy爬虫框架没有提供页面 js 渲染服务,所以我们获取不到信息,所以我们需要一个渲染引擎来为我们提供渲染服务---这就是Splash渲染引擎(大侠出场了)1、Splash渲染引擎简介:Splash是为Scrapy爬虫框架提供渲染javas.

2021-09-01 17:57:31 49

原创 Scrapy 爬虫框架初体验三 —— 工程优化及其完善

一、工程优化及其完善日志系统及定时过期删除日志文件在工程目录中的settings.py 添加如下修改:import loggingfrom scrapy.utils.log import configure_loggingfrom logging.handlers import TimedRotatingFileHandlerFEED_EXPORT_ENCODING = 'gb18030' # 输出的编码格式为uft-8, gb18030# Log Configlog.

2021-09-01 17:34:22 60

原创 Scrapy 爬虫框架初体验二 —— 以一个新闻站点爬取为例

一、搭建基础 Scrapy 工程框架创建项目输入如下命令:scrapy startproject NewsSpider # 创建项目cd NewsSpiderscrapy genspider technews tech.163.com # 创建一个爬虫tree .目录结构如下:(base) ➜ [dfg@:/Users/dfg/code/codeplay/python/Spider/NewsSpider] tree ..├── NewsSpider│ ├─..

2021-09-01 16:37:37 34

原创 Scrapy 爬虫框架初体验一 —— 网络爬虫及其框架介绍

一、框架概述网络爬虫介绍在介绍框架之前,简单介绍一下网络爬虫(Web Crawler)。当我们上网时,浏览的网页上有很多形形色色的信息,我们可以手动收集(复制粘贴or下载)我们需要的信息。但是,当信息量比较多就显得很麻烦了,有没有一种方式可以自动且快捷地把一堆相关网页上的海量信息下载下来呢?有,那就是网络爬虫。网络爬虫是一种从 Web 上自动下载网页的程序——网络爬虫把一个或多个“种子网页”作为输入,然后经过下载、分析和扫描等处理过程来获取新链接。对于指向未下载网页的链接,将它们加到一个

2021-09-01 16:11:17 37

原创 数据获取之网络爬虫专栏简介

一、技术选型众所周知,针对不同的业务场景和需求选取不同的技术选型和架构方案方案。可以让我们事半功倍,提升工作效率的同时完成本职工作。而针对互联网上的数据获取需求也是一样。下面我们将介绍三种场景的爬虫数据获取需求和场景,并推荐其相应的解决方案。1、简单需求(单文件脚本 / 基于 request 网络库及相关第三方库)针对一次需求和没有持续集成的要求的场景,对于这类简单的任务,不使用爬虫框架也能实现很好的效果,而且代码更少。当采用 Python 语言实现时,常用的相关依赖库有request...

2021-09-01 15:09:26 65

转载 认识 UML 类关系——依赖、关联、聚合、组合、泛化

文章目录1.依赖(Dependency)2.关联(Association)3.聚合(Aggregation)4.组合(复合,Composition)5.泛化(Generalization)6.小结参考文献在学习面向对象设计时,类关系涉及依赖、关联、聚合、组合和泛化这五种关系,耦合度依次递增。关于耦合度,可以简单地理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强。下面根据个人理解,尝试讲解这五种类关系。1.依赖(Depend

2021-08-06 11:09:46 113

转载 C/C++ 中嵌入汇编总结

GCC汇编语法梗概AT&T 与 Intel 汇编区别Linux GCC(GNU, C Compiler)使用AT&T汇编语法。下面列一下AT&T 和Intel汇编语法中的不同:源-目的 顺序AT&T中源和目的操作数的顺序相反。Intel语法中第一个操作数是目的,第二个是源。而AT&T语法中,第一个是源第二个操作数是目的。“Op-code src, dst” —— AT&T 语法“Op-code dst, src” —— Intel语法寄

2021-08-02 10:00:26 43

转载 认真分析mmap:是什么 为什么 怎么用

阅读目录mmap基础概念 mmap内存映射原理 mmap和常规文件操作的区别 mmap优点总结 mmap相关函数 mmap使用细节mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段.

2021-07-31 11:59:50 27

原创 Doxygen with Graphviz to generate call graph on Mac

Doxygen and GraphvizDoxygenDoxygen is a documentation generator primarily used for c++ code. More on doxygen can be found here.http://www.doxygen.nl/GraghvizDoxygen can use the “dot” tool from graphviz to generate more advanced diagrams and graphs.

2021-07-23 17:46:45 45

原创 cmake 常用变量和常用环境变量

一,cmake 变量引用的方式:前面我们已经提到了,使用${}进行变量的引用。在 IF 等语句中,是直接使用变量名而不通过${}取值二,cmake 自定义变量的方式:主要有隐式定义和显式定义两种,前面举了一个隐式定义的例子,就是 PROJECT 指令,他会隐式的定义<projectname>_BINARY_DIR 和<projectname>_SOURCE_DIR 两个变量。显式定义的例子我们前面也提到了,使用 SET 指令,就可以构建一个自定义变量了。比如

2021-07-16 15:18:04 152

转载 shell脚本如何优雅的打印帮助信息

一个好的帮助信息对于快速、高效的使用shell脚本是非常有好处的。我们一般通过echo来逐行打印帮助信息,这种方式一个明显的缺点就是需要手动去进行排版,而排版的过程有时十分的繁琐。有没有想过,如果可以像写一般的注释一样来完成帮助信息的编写,那该多好啊!本文通过sed这个工具来实现,像写注释一样写shell的帮助信息。shell中一般#开头的行为注释信息,所以利用这个特性,我们可以把帮助信息设计成如下的样式:#!/usr/bin/env bash ###### my-script — does

2021-07-06 11:54:19 49

原创 【程序性能分析利器】Google Perf Tool 和 Valgrind 工具包简介

Google Perf Tools 的安装和使用Gperf 工具包包含如下几个工具: 一个优化的内存管理算法—tcmalloc性能优于malloc。 一个用于CPU profile的工具,用于检测程序的性能热点,这个功能和gprof类似。 一个用于堆检查工具,用于检测程序在是够有内存泄露,这个功能和valgrind类似。 一个用于Heap profile的工具,用于监控程序在执行过程的内存使用情况。 其使用方法如下:1.使用其提供的内存管理函数---TC Malloc: .

2021-05-11 11:12:01 169 1

原创 改进协议 BIP32-39-44概述

BIP44 调研可行性调研 By Blake chenBIP 44 协议提出背景签名算法是区块链系统中具有密码学属性的基础核心支撑算法。其资产确权、账户验证、身份确认、以及生成公私钥对进入区块链世界的第一步,都需要依赖其签名算法的选择。而现行区块链应用多采用借鉴比特币采用的 secp256k1 椭圆曲线签名算法,作为其公私钥对以及地址生成、交易签名。而基于椭圆曲线生成的公私钥对之间没有任何关联关系,是相互独立的公私钥和账户。对于企业或中心化机构 (如中心化交易所/数字钱包等) 想进行统一的

2021-04-23 18:43:09 154

原创 密码学在区块链中的应用 【八】

密码学在区块链中的应用 【8】 区块链相关密码学数据的组织方式,区块链的块链结构。通过块的哈希链接起来的链。世界状态:使用 merkle 哈希树组织,便于快速检索和网络传输。如账户树,交易树,账单树等。hash 函数保证数据完整性。sha256/RIPEMD160布隆过滤器:轻客户端快速索引交易。椭圆曲线签名算法。签名认证,确认信息发送方的身份,确认区块链上信息的来源。访问控制与隐私保护:可以确定谁在什么条件下可做什么事,保证区块链上加密的数据只被授权用户看到。如属性加密秘钥交换协议:

2021-04-18 21:21:35 219

原创 秘钥协议及新兴密码学方向【7】

秘钥协议及新兴密码学方向【7】秘钥管理及交换共享 (秘钥协议)密钥交换是实现安全通信的基础,商用加密算法AES和DES需要在安全通信之前,实现通信双方的密钥共享。密钥交换的常用方法:基于RSA的密钥交换; 即通过 RSA 来对秘钥进行加密后,安全传输。证书颁发机构CA(CertificateAuthority);基于DES/AES 实现的 KDC 技术(Key Distributed Center, 秘钥分发中心),引入了一个可信的第三方。Diffie-Hellman 秘钥交

2021-04-18 21:19:18 73

原创 Hash算法及数字签名【六】

Hash算法及数字签名【6】Hash 函数Hash 函数主要用于数据完整性验证,如区块链中的 Merkel 树与根,网络传输的消息认证码等。 1、Hash函数的定义将任意长的消息 M 映射为较短的、固定长度的一个值H(M)。Hash 函数的目的是为需认证的数据产生一个“指纹”。Hash函数应满足以下条件:Hash函数函数的输入可以是任意长Hash函数函数的输出是固定长易于在软件和硬件实现同时,Hash函数为了实现安全认证,需要满足如下安全条件:单向性: 已知x,求h =

2021-04-18 21:05:21 162 1

原创 非对称加密之公钥密码体系 【五】

非对称加密之公钥密码体系 【5】 非对称加密之公钥密码体系古典密码到现代密码最主要的区别便是密码体系的安全不在依赖于加密算法的安全,而是依赖秘钥的安全。在互联网上通信时,若需要加密需要事先共享秘钥,对称密码体制使用同一个秘钥,显然不能网上传输。随着互联网的普及,加入网络的用户激增,于是在网上传输共享秘钥的需求增加,催生了公钥加密体系。 1、产生背景公开信道上的“安全”通信公开信道上的“安全”通信:催生了公钥加密算法。传统的对称密码体制,对称密码体制(例如DES, AES)

2021-04-18 18:20:13 153

原创 对称加密之分组加密【四】

对称加密之分组加密【四】 1、分组密码概述分组密码和流密码的区别。1.分组密码和流密码的概念与区别:所谓流密码,就是把明文的所有字符作为一个整体,然后一位一位地对明文字符进行加密。如维吉尼亚密码和Vernam密码,都属于流密码。一位明文被一位密钥加密为一位密文是流密码的特点。分组密码:需要先对明文进行分组,然后**对分组后的明文一组一组地进行加密。它与流密码的区别是,分组密码一次用一个密钥k加密一组明文,而不是一位一位加密。如下图明文分组长度为 n, 密文分组长度为 m, 加密函数 E:Vn

2021-04-18 18:06:21 183

原创 对称加密之流密码【三】

对称加密之流密码【三】 对称加密之流密码 1 一次一密一次一密 (one-time pad) 是一种较理想的加密方式, 1917 年 由 AT&T 实验室提出,秘钥随机生成,而且只用一次。已经证明在秘钥安全的情况下,改方案具有完善保密性。如下图:优点:密钥随机产生,仅使用一次无条件安全加密和解密为加法运算,效率较高密钥长度大于等于明文长度,密钥共享困难,不太实用。虽然 OTP 具有完善的保密性,但是其缺点也很明显。于是人们就想到使用有

2021-04-18 17:28:39 79

原创 密码学的数学模型及其理论基础 【二】

密码学的数学模型及其理论基础 【二】 密码学的数学模型与理论基础信息论之父 Shannon 的通信保密系统与熵和无条件保密复杂度理论基础与计算安全性的定义1948 年,香农的论文 A mathematical theory of communication, 奠定了现代信息论的基础。1949 年, 香农的论文 Communication theory of secrecy systems, 定义了保密系统的数学模型,为密码学从技巧艺术转向科学之路作出了巨大的贡献。

2021-04-18 17:20:44 292

原创 密码学概述及其发展简史 【一】

1 密码学1.1 什么是密码学密码学是保障信息安全的核心技术,信息安全是密码学研究与发展的主要动力和目的。密码学能做什么?机密性: 如何使得某个数据自己能看懂,别人看不懂认证: 如何确保数据的正确来源,如何保证通信实体的真 实性完整性: 如何确保数据在传输过程中没有被删改不可否认性: 如何确保用户行为的不可否认性密码算法密码算法的基本概念和术语包括: 明文(M)、密文©、密钥 (k 秘密参数)、加密(E)、解密(D)函数。算法基本约束和要求:对使用者算法可逆恢复成

2021-04-18 17:14:55 330

原创 密码学 & 区块链中的应用专栏 【简介】

密码学 & 区块链中的应用 By Blake chen​专栏内容总览(Mindmap)​目录及其组织结构1 密码学1.1 什么是密码学1.2 密码学的发展阶段和简史1.3 古典密码算法简介1.4 密码学的数学模型与理论基础1.香农(Shannon)通信保密系统模型2 密码体制应满足的重要原则3 信息熵的定义4.条件熵的定义5.互信息6.无条件保密定理7.复杂度理论基础概念1.5 对称加密之流密码1 一次一密2 流密码 (stream c

2021-04-18 16:46:04 110

原创 数字签名原理简述

本文结合下面两个问题来讲解数字签名的基本原理。结合图片希望能给大家一个清晰简单明了的分析和讲解。1. 问题描述:(1)用户A向远方的用户B发送一个消息,用户B如何确认所收到的消息在传输的过程中没被篡改过?(2)用户B收到了消息之后,如何防止A随之否认这个消息是他发送的呢?---------阅读本文的知识储备:了解非对称加密的基本原理。--------2. 使用方法:数字签名类比于现实生活,我可以在一个支票上面签名,表示这张支票确实是我本人签署的。收到这张支票的人到银行去兑现的时候,工

2021-04-07 17:56:08 264

原创 docker-compose配置固定IP各种问题

先附上配置version: '3.5'services: hadoop1: image: hadoop:1.3 container_name: hadoop1 command: bash -c "/usr/sbin/sshd && /bin/bash" tty: true networks: mynetwork: # 宿主机会自动配置网关IP:172.20.1.1 ipv4_address: ...

2021-04-07 15:14:13 833

转载 autotools 自动编译系列简介

autotools安装1.介绍Linux环境下,我们编译程序啥的都是一般用的GCC&&GDB等等工具,直接使用GCC命令进行编译操作。这种方式一般是适用于程序文件比较少,组织结构比较简单的情况。但是,当我们程序文件比较的多的时候,或者是程序文件组织结构比较的复杂(例如在程序文件夹中存在文件夹多层嵌套以及复杂引用等),此时我们如果是直接使用GCC一点一点的编译工作量会非常的大,而且万一程序修改了,还要重新的再工作一遍。为此,我们有了make工具,依靠Makefile辅助文件,我.

2021-04-04 00:11:19 192 1

原创 国产联盟链 Fisco-Bcos 调技术研报告

国产联盟链 Fisco-Bcos 调技术研报告 By Blake chen组织结构总览整体架构FISCO 对外宣传时,称其主要架构为 ”一体两翼多引擎“。一体是指其群组架构或者称为其多链架构,企业根据业务场景和业务关系选择不同群组,群组之间独立共识以及数据存储。同一个组织节点可以加入不同的群组。群组之间是否有通信、协作方式、以及安全模型还需要源码级研究才清楚其细节。两翼指的是支持并行计算模型和分布式存储,并行计算改变了区块中按交易顺序串行执行的做法,基于DAG(有向无环图)并行执行交易;分布式

2021-04-01 10:45:52 104 3

转载 CMake 常用命令和变量

前言前面的文章介绍了一个最简单的CMake工程,这篇文章将介绍一个稍微复杂一些的CMake工程,结合这个工程总结一下在组织一个C/C++工程时最为常用的一些CMake命令和变量。对于涉及到的命令和变量,介绍的原则是点到即止,先仅需掌握基本用法即可,让工程跑起来。上一篇文章中那个最简单的CMake Hello World工程,在其CMake脚本文件CMakeLists.txt中,仅有一句话:add_executable(hello hello.cpp)这里面的add_executable就是

2021-03-30 15:41:48 63

原创 PBFT 算法原理简介

什么是 pBFT?Practical Byzantine Fault Tolerance ,实用拜占庭容错。什么是 BFT?Byzantine Fault Tolerance ,拜占庭将军问题。拜占庭将军的问题是什么?简单地说,是一种少数服从多数的问题。拜占庭罗马帝国的每块封地都驻扎一支由将军统领的军队,将军与将军之间只能靠信差传递消息。在战争时期,拜占庭军队只有占据人数优势情况下,才能夺取目标的胜利。但在军队内有可能存有叛徒,当敌军与之联合起来大于忠诚将军数量时,进攻就会失败。pB

2021-03-08 23:31:11 259

原创 Boost asio 官方教程简介

1. 概述本章介绍了 Boost C++ 库 Asio,它是异步输入输出的核心。 名字本身就说明了一切:Asio 意即异步输入/输出。 该库可以让 C++ 异步地处理数据,且平台独立。 异步数据处理就是指,任务触发后不需要等待它们完成。 相反,Boost.Asio 会在任务完成时触发一个应用。 异步任务的主要优点在于,在等待任务完成时不需要阻塞应用程序,可以去执行其它任务。异步任务的典型例子是网络应用。 如果数据被发送出去了,比如发送至 Internet,通常需要知道数据是否发送成功。 如果没...

2021-03-03 19:39:55 281 1

原创 无锁(Lock-Free)编程简介及漫谈

一、引言现代计算机,即使很小的智能机亦或者平板电脑,都是一个多核(多CPU)处理设备,如何充分利用多核CPU资源,以达到单机性能的极大化成为我们码农进行软件开发的痛点和难点。在多核服务器中,采用多进程或多线程来并行处理任务,俨然成为了大家性能调优的标准解决方案。多进程(多线程)的并行编程方式,必然要面对共享数据的访问问题,如何并发、高效、安全地访问共享数据资源,成为并行编程的一个重点和难点。传统的共享数据访问方式是采用同步原语(临界区、锁、条件变量等)来达到共享数据的安全访问,然而,同步恰恰和并行

2021-02-27 21:28:45 521

机器学习笔记(经典机器算法和大数据算法)

涉及机器学习的各种经典的算法,其中,有 logistics 回归,决策树、随机森林、XGBoost、SVM、主题模型、隐马尔可夫链、贝叶斯网络、聚类算法等等

2018-09-09

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除