NSOperation, NSOperationQueue 原理探析】的更多相关文章

通过GNUstep的Foundation来尝试探索下NSOperation,NSOperationQueue 示例程序 写一个简单的程序 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [self configurationQueue]; LDNSOperation *operation = [[LDNSOpera…
1.PHP与Apache工作模式 在传统的LAMP架构中,PHP与Apache交互时,至少有两种方式『运行PHP』: 使用CGI:Apache发送请求至php-cgi进程,php-cgi进程调用PHP解释器,然后由PHP解释器进程解释php脚本代码. 使用mod_php作为Apache的一个模块:PHP解释器作为Apache的一个内置模块,即不存在外部的PHP进程,而是由Apache(中的mod_php模块)进程解释执行PHP脚本 - 这意味着PHP与Apache通信更方便快捷. 其中,『运行P…
从getUserMedia()到RTCPeerConnection(),自认为难度陡增.我想一方面是之前在Linux平台上学习ROS调用摄像头时,对底层的外设接口调用.摄像头参数都有学习理解:另一方面是,我们在大三下学期才开始计算机网络的课程学习,对网络通信的理解尚处于未能达到闭环的自闭状态(自闭--"全程自学完成知识闭环") 面对ICE.SDP.NAT gateways.STUN.TURN等词汇异常懵逼(解释可以参考这篇introduction)所以写文如下,增进自己的理解,也为同样…
koa被认为是第二代web后端开发框架,相比于前代express而言,其最大的特色无疑就是解决了回调金字塔的问题,让异步的写法更加的简洁.在使用koa的过程中,其实一直比较好奇koa内部的实现机理.最近终于有空,比较深入的研究了一下koa一些原理,在这里会写一系列文章来记录一下我的学习心得和理解. 在我看来,koa最核心的函数是大名鼎鼎的co,koa正是基于这个函数实现了异步回调同步化,以及中间件流程控制.当然在这篇文章中我并不会去分析co源码,我打算在整个系列文章中,一步一步讲解如何实现koa…
Ansj是由孙健(ansjsun)开源的一个中文分词器,为ICTLAS的Java版本,也采用了Bigram + HMM分词模型(可参考我之前写的文章):在Bigram分词的基础上,识别未登录词,以提高分词准确度.虽然基本分词原理与ICTLAS的一样,但是Ansj做了一些工程上的优化,比如:用DAT高效地实现检索词典.array + linked-list方式实现分词DAG.支持自定义词典与自定义消歧义规则等. 1. 前言 Ansj支持多种分词方式,其中ToAnalysis为店长推荐款: 它在易用…
FNLP是由Fudan NLP实验室的邱锡鹏老师开源的一套Java写就的中文NLP工具包,提供诸如分词.词性标注.文本分类.依存句法分析等功能. [开源中文分词工具探析]系列: 中文分词工具探析(一):ICTCLAS (NLPIR) 中文分词工具探析(二):Jieba 中文分词工具探析(三):Ansj 开源中文分词工具探析(四):THULAC 开源中文分词工具探析(五):FNLP 1. 前言 类似于THULAC,FNLP也是采用线性模型(linear model)作为基础分词模型.与对数线性模型…
前文链接: ELF格式探析之一:Segment和Section ELF格式探析之二:文件头ELF Header详解 今天我们讲对目标文件(可重定位文件)和可执行文件都很重要的section. 我们在讲ELF Header的时候,讲到了section header table.它是一个section header的集合,每个section header是一个描述section的结构体.在同一个ELF文件中,每个section header大小是相同的.(其实看了源码就知道,32位ELF文件中的se…
在”浏览器环境下Javascript脚本加载与执行探析“系列文章的前几篇,分别针对浏览器环境下JavaScript加载与执行相关的知识点或者属性进行了探究,感兴趣的同学可以先行阅读前几篇文章,了解相关的知识点: (1)<浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序>主要针对向页面引入JavaScript代码的不同方法,研究了其在代码执行顺序方面的问题,特别重点研究了document.write这种方式引入JavaScript脚本时的执行顺序问题. (2)<浏览器环境下…
序言 IBM Rational AppScan Standard(下文简称 AppScan)作为面向 Web 应用安全黑盒检测的自动化工具,得到业界的广泛认可和应用.很多人使用 AppScan 时都采用其强大的手工探索加自动探测的方式,然而这种方式并不适用于所有场景.使用 AppScan 进行安全扫描时,我们必须保证 AppScan 探索出来的 URL 的有效性(尤其是用户想导出这些探索结果以供复用的情况下),有效性即指该 URL 对应的 HTTP 请求能被服务器端接受并按照期望的方式进行处理.…
Spring IOC 容器预启动流程源码探析 在应用程序中,一般是通过创建ClassPathXmlApplicationContext或AnnotationConfigApplicationContext这两个最底层子类来启动Spring IOC容器: ClassPathXmlApplicationContext: xml文件配置版 AnnotationConfigApplicationContext: 注解版 由于当下越来越流行基于Java注解的配置来创建我们的Bean,所以本文主要以注解版进…
1. 前言 Jieba是由fxsjy大神开源的一款中文分词工具,一款属于工业界的分词工具--模型易用简单.代码清晰可读,推荐有志学习NLP或Python的读一下源码.与采用分词模型Bigram + HMM 的ICTCLAS 相类似,Jieba采用的是Unigram + HMM.Unigram假设每个词相互独立,则分词组合的联合概率: \begin{equation} P(c_1^n) = P(w_1^m) = \prod_i P(w_{i}) \label{eq:unigram} \end{eq…
1. 前言 ICTCLAS是张华平在2000年推出的中文分词系统,于2009年更名为NLPIR.ICTCLAS是中文分词界元老级工具了,作者开放出了free版本的源代码(1.0整理版本在此). 作者在论文[1] 中宣称ICTCLAS是基于HHMM(Hierarchical Hidden Markov Model)实现,后在论文[2]中改成了基于层叠隐马尔可夫模型CHMM(Cascaded Hidden Markov Model).我把HHMM的原论文[3]读了一遍,对照ICTCLAS源码,发现I…
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义.解析,并对几个 Android 开源库 Annotation 原理进行简析.PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 完整版原文见:Java Android 注解(Ann…
原理简析 摘录php.ini文件的默认配置(php5.4): ; Common Values: ; E_ALL (Show all errors, warnings and notices including coding standards.) ; E_ALL & ~E_NOTICE (Show all errors, except for notices) ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for…
含义:NSOperation,NSOperationQueue是什么. The NSOperation class is an abstract class you use to encapsulate the code and data associated with a single task.NSOperation是一个你需要将代码和数据放在一个单任务中执行的抽象类. The NSOperationQueue class regulates the execution of a set o…
PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示例 Override Annotation   Java   1 2 3 @Override public void onCreate(Bundle savedInstanceState);   Retrofit Annotation   Java   1 2 3 @GET("/users/{use…
Emmet 语法探析 Emmet(Zen Coding)是一个能大幅度提高前端开发效率的一个工具. 大多数编辑器都支持Snippet,即存储和重用一些代码块.但是前提是:你必须先定义 这些代码块. Emmet的特点在于你可以设置CSS形式的能够动态解析的表达式,然后根据所输入 的表达式来生成相应的内容.Emmet还有一些常用的高级功能,如生成Lorem Ipsum,更新CSS的属性值, 将图片资源转换成data url形式等.通过对Emmet的熟练使用,可以极大地推动你的生产力. 使用Emmet…
THULAC是一款相当不错的中文分词工具,准确率高.分词速度蛮快的:并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等. 1. 前言 THULAC所采用的分词模型为结构化感知器(Structured Perceptron, SP),属于两种CWS模型中的Character-Based Model,将中文分词看作为一个序列标注问题:对于字符序列\(C=c_1^n\),找出最有可能的标注序列\(Y=y_1^n\).定义score函数\(S(…
转载自http://shift-alt-ctrl.iteye.com/blog/1987416 Apache Thrift是一个跨语言的服务框架,本质上为RPC,同时具有序列化.发序列化机制:当我们开发的service需要开放出去的时候,就会遇到跨语言调用的问题,JAVA语言开发了一个UserService用来提供获取用户信息的服务,如果服务消费端有PHP/Python/C++等,我们不可能为所有的语言都适配出相应的调用方式,有时候我们会很无奈的使用Http来作为访问协议;但是如果服务消费端不能…
Erlang调度器细节探析 Erlang的很多基础特性使得它成为一个软实时的平台.其中包括垃圾回收机制,详细内容可以参见我的上一篇文章Erlang Garbage Collection Details and Why It Matters 什么是调度 一般来说,调度是一种将工作分配给工作者的机制.这些工作可以是数学运算,字符串处理,数据提取,工作者指的是类似于Green Threads或者原生线程等这种资源.调度器就是执行调度任务的程序,它在某种程度上提供:最大化吞吐,公平执行,最小化响应时间和…
CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer (NER)).情感分析(sentiment analysis)等功能. 1. 前言 CoreNLP也有中文分词,基于CRF模型: \[ P_w(y|x) = \frac{exp \left( \sum_i w_i f_i(x,y) \right)}{Z_w(x)} \] 其中,\(Z_w(x)\)为…
[02]-javaScript对象探析 题记:多年前,以非常偶然的方式关注了微信公众号“面向对象”,本以为这个公众号主要以分享面向对象编程的干货为主,不料其乃实实在在的猿圈相亲平台.通过查看公开资料,发现该公众号俨然是在以自己的方式来帮助广大单身程序猿们通往一条真真正正的面向对象编程之路,相对而言,编程和语言特性这些破事又算得了什么呢,先“找到对象”似乎才是更高层面的话题.这篇文章,我们不谈如何”面向对象”,只着力于JavaScript中对象特征.创建以及访问.本文作为纯粹的技术文章,和“面向对…
LTP是哈工大开源的一套中文语言处理系统,涵盖了基本功能:分词.词性标注.命名实体识别.依存句法分析.语义角色标注.语义依存分析等. [开源中文分词工具探析]系列: 开源中文分词工具探析(一):ICTCLAS (NLPIR) 开源中文分词工具探析(二):Jieba 开源中文分词工具探析(三):Ansj 开源中文分词工具探析(四):THULAC 开源中文分词工具探析(五):FNLP 开源中文分词工具探析(六):Stanford CoreNLP 开源中文分词工具探析(七):LTP 1. 前言 同TH…
CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer (NER)).情感分析(sentiment analysis)等功能. [开源中文分词工具探析]系列: 开源中文分词工具探析(一):ICTCLAS (NLPIR) 开源中文分词工具探析(二):Jieba 开源中文分词工具探析(三):Ansj 开源中文分词工具探析(四):THULAC 开源中文分词工具…
在<浏览器环境下JavaScript脚本加载与执行探析之defer与async特性>中,我们研究了延迟脚本(defer)和异步脚本(async)的执行时机.浏览器支持情况.浏览器bug以及其他的细节问题.而除了defer和async特性,动态脚本和Ajax脚本注入也是两种常用的创建无阻塞脚本的方法.总的来看,这两种方法都能达到脚本加载不影响页面解析和渲染的作用,但是在不同的浏览器中,这两种技术所创建的脚本的执行时机还是有一定差异,今天我们再来探讨一下通过动态脚本技术和Ajax注入的脚本在这些方…
defer和async特性相信是很多JavaScript开发者"熟悉而又不熟悉"的两个特性,从字面上来看,二者的功能很好理解,分别是"延迟脚本"和"异步脚本"的作用.然而,以defer为例,一些细节问题可能开发者却并不一定熟悉,比如:有了defer特性的脚本会延迟到什么时候执行:内部脚本和外部脚本是不是都能够支持defer:defer后的脚本除了会延迟执行之外,还有哪些特殊的地方等等.本文结合已有的一些文章以及MDN文档中对两个特性的阐述,对de…
iOS多线程有四套多线程方案: Pthreads NSThread GCD NSOperation & NSOperationQueue 接下来我来一个一个介绍他们 Pthreads 在类Unix操作系统(Unix.Linux.Mac OS X等)中,都使用Pthreads作为操作系统的线程.这套多线程是使用C语言实现的,所以可移植性很高.但是在实际项目中基本上不会用到,这里只做简单的介绍.首先要包含头文件pthread.h void *star(void *data) { NSLog(@&quo…
在集群系统中,经常会需要将Session进行共享.不然会出现这样一个问题:用户在系统A上登陆以后,假如后续的一些操作被负载均衡到系统B上面,系统B发现本机上没有这个用户的Session,会强制让用户重新登陆.此时用户会很疑惑,自己明明登陆过了,为什么还要自己重新登陆. 什么是Session 这边再普及下Session的概念:Session是服务器端的一个key-value的数据结构,经常被用户和cookie配合,保持用户的登陆回话.客户端在第一次访问服务端的时候,服务端会响应一个sessionI…
转: matplotlib工具栏源码探析三(添加.删除自定义工具项) matplotlib工具栏源码探析二(添加.删除内置工具项)探讨了工具栏内置工具项的管理,除了内置工具项,很多场景中需要自定义工具项,官方给出了案例https://matplotlib.org/gallery/user_interfaces/toolmanager_sgskip.html,主要基于matplotlib.backend_managers.ToolManager类实现,即使用工具栏管理器模式. 官方案例解析 下面对…
git是一款分布式代码版本管理工具,通过git能够更加高效地协同编程.了解git的工作原理将有助于我们使用git工具更好地管理项目.通过了解.git文件夹中的文件组成,我们可以从一个角度去窥探git的实现原理.我们知道,在开始开发一个项目或加入一个项目时,需要创建一个新的仓库git init [options],或从远端克隆一个已经存在的仓库git clone [uri],除使用git init --bare创建一个"裸"仓库以外,所有创建的本地仓库都包含有一个.git文件夹,需要了解…