`
ipjmc
  • 浏览: 702582 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
        线程私有数据的使用场景是:某个函数在第一次被调用的时候,分配内存block,在以后每次调用的时候,都是用第一次所分配的内存block,无需再次分配。可以用线程私有数据来存储这个内存block。         在多线程环境下,如果不使用线程私有数据,由于函数只分配了一个block,所以各个线程在block上必然会有竞争。如果每个线程对这个block的使用是相互独立的,比如对errno的设置,就可以使用线程私有变量来避免竞争。         可以把线程私有变量看成是一种<key, value>类型的数据结构,对于同一个key,不同的线程可以有不同的value。Lin ...
    Tornado是一个异步Python框架,最初由FriendFeed发起并开源,目前由Facebook维护,非常适合实时做Web应用。     Redis是一个NoSQL数据库,常用于做缓存系统,这里主要用到了它的Pub/Sub功能。即当一个用户发送一条消息时,所有的用户都会收到消息。     关于什么是Ajax长轮询(Comet)不再介绍     我是参照the5fire的一篇博客来组织项目源码的:http://www.the5fire.com/tornado-mvc-helloworld-2.html     当Tornado收到浏览器的消息时,将这条消息publish到Redi ...
    默认的Solr没有中文分词功能,而Paoding则是能兼容Lucene的中文分词工具,但是目前Paoding的版本只能兼容lucene3。还好有大神已经给出了解决方法,参考:http://www.oschina.net/code/snippet_259382_14635,此方法兼容到Solr4.2.1。     但是直接使用的时候,会报NullPointer异常,需要修改一下文件,去掉toString(),src/net/paoding/analysis/ext/PaodingAnalyzerSolrFactory.java: public void init(Map<S ...
    先来看一下在Jetty里,什么是Context。在Jetty里Context是包含了在某一特定URL或Virtual Host下的一组Handler的Handler。可以这样理解,Context本身也是一种Handler,它里面包含了许多的Handler,这些Handler都只能处理某个特定URL下的请求。Jetty里的Context有ContextHandler,ServletContext和WebAppContext。这里主要学习一下WebAppContext。       先回忆一下war里面web.xml里面可能有什么东西,有Security,Session,Servle ...
    一个Jetty Server可以看成由一下几部分组成,其中Connector负责接收客户端的HTTP请求,请求的处理是由Handler来完成的。在上一个例子中HelloHandler的作用就是处理用户请求,并输出结果。                Handler在Jetty中是一个非常重要的东西,Jetty内部实现了一些Handler,可以分为一下几类:     1.协调Handler:负责将request路由到其他Handler的Handler(如:HandlerConnection, ContextHandlerConnection)     2.过滤Handler:负 ...
    Jetty的口号是:“不要把你的程序放到Jetty里,而是把Jetty部署到你的程序里”,也就是说可以把war包放到Jetty里(就像tomcat一样),也可以把Jetty当成程序的一个HTTP模块。     嵌入Jetty的使用方法是这样的,可以在maven中添加depency,然后就可以在Java程序中使用Jetty创建Web Server了,目前最新的Jetty版本是Jetty 9。   <!-- jetty dependecies --> <dependency> <groupId>org ...
由于Hadoop版本混乱多变,因此,Hadoop的版本选择问题一直令很多初级用户苦恼。本文总结了Apache Hadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的一些建议。 1. Apache Hadoop 1.1  Apache版本衍化 截至目前(2012年12月23日),Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0。第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.2 ...
转载过来,自己加工了一点点,留着参考吧:) 使用automake主要会用到aclocal、autoscan、autoconf、autoheader和automake这几个命令。首先简略的说一下用automake生成makefile的步骤:(1)创建源代码文件,使用”autoscan”生成configure.scan文件,将其重命名为configure.ac,并做适当修改,然后使用”aclocal”命令生成aclocal.m4文件,使用”autoconf”命令由configure.ac和aclocal.m4文件生成configure文件。(2)手工编辑Makefile.am文件,使用”a ...

make笔记

Makefile中一个项由以下结构所组成: target: dependency_files     command 比如,有两个文件hello.c,hello.h,创建的目标体为hello.o,执行命令是gcc -c hello.c,Makefile就可以这样写: hello.o: hello.c hello.h gcc -c hello.c   一个稍微复杂 ...

GDB 笔记

通过gcc编译时必须使用-g选项才能使用gdb调试 gcc -g hello.c -o hello gdb的选项是非常多的,在gdb里,把命令按类划分,可以通过help xxx来查看相应的帮助 gdb>help #显示全部帮助的类 gdb>help running #显示运行的帮助 gdb>help breakpoints #查看断点相关的命令 使用示例: $gdb hello #启动GDB gdb >list #显示源代码 gdb >break 7 #在第7行设置断点 gdb >run #程序开始运行 gdb >displ ...

GCC笔记

GCC 编译流程:   GCC在编译C/C++程序时,会经过一下4步 1.预处理 gcc -E hello.c -o hello.i   2.编译 gcc -S hello.i -o hello.s   3.汇编 gcc -c hello.s -o hello.o   4.链接
        Android 4.1 (Jelly Bean) 增强了通知功能,在AndroidManifest.xml中可以为Activity添加属性android:parentActivityName="MainActivity",实现点击通知打开ResultActivity时,再按返回键,回到MainActivity,而不是回到之前的Task。只在4.1的机器上有效,在2.x的机器上和以前没有任何区别。         核心代码如下: public void showNotification() { NotificationCompat.Buil ...
这个资料分享主要分享的都是非学术的Paper,都来自商业公司,Google, YouTube, Amazon, LinkedIn等等。 我个人非常喜欢这些文章,基本上,这些文章描述的都是在系统中的实际能工作的东西。 这个是Google的一篇论文http://t.cn/zl0zxPZ这个里面有很多有意思的想法。 推荐的结果是三个算法的融合,即MinHash, PLSI, covisitation. 
1. Python输出 http://www.pythonclub.org/python-basic/print   2.Python 输入 http://www.pythonclub.org/python-basic/raw-input ,http://www.pythonclub.org/python-basic/input   3.Python 动态类型 & 强类型 http://stackoverflow.com/questions/11328920/is-python-strongly-typed ,http://wiki.python.org/moin/Why%20i ...
    这一篇,我们来试着安装Thrift,并运行Thrift自带的例子,以对Thrift有个感性的认识。 一、下载     从官网下载最新版:http://thrift.apache.org/,在写这篇博客的时候,最新版稳定版是0.8.0。官网给的有安装教程以及系统要求,可参照http://thrift.apache.org/docs/install/,上面有各种系统下的编译安装方法。由于我的系统是ubuntu,所以就把ubuntu下thrift的编译安装教程放到这里。     首先,在ubuntu上,系统需要需要有如下组件: sudo apt-get install libboost ...
Global site tag (gtag.js) - Google Analytics