本文主要讲述了 python 中多线程的使用、线程锁以及多线程在 python 中是否能够提高效率。

多线程的概念

进程的相信大家都听说过,而线程可以理解为比进程更小一级的概念,一个进程内至少有一个线程,如果有多个线程,那么他们就共享进程的资源,共同完成进程的任务。

使用多线程一般有两个不同的目的:
一是把程序细分成几个功能相对独立的模块,防止其中一个功能模块阻塞导致整个程序假死(GUI 程序是典型)
另一个就是提高运行效率,比如多个核同时跑,或者单核里面,某个线程进行 IO 操作时,另一个线程可以同时执行。具体可以参考这篇文章

阅读全文 »

原题如下:
>Given a linked list, remove the nth node from the end of list and return its head.

For example,

Given linked list: 1->2->3->4->5, and n = 2.  
After removing the second node from the end, the linked list becomes 1->2->3->5.  

Note:
Given n will always be valid.
Try to do this in one pass.

阅读全文 »

《Programming Collective Intelligence》(中文名为《集体智慧编程》),是一本关于数据挖掘的书籍,每一章都会通过一个实际的例子来讲述某个机器学习算法,同时会涉及到数据的采集和处理等,是一本实践性很强的书籍。

本文是关于本书的第二章 Making Recommendations 的前半部分。主要讲述了寻找用户相似性和物品相似性的方法,并在这个基础上讲述如何为用户推荐物品。

阅读全文 »

这是一篇关于 maven 入门的相当好的文章,文章有点长,但是非常值得看。原文链接

Maven 简介

何为 Maven

Maven 这个词可以翻译为 “知识的积累”,也可以翻译为 “专家” 或 “内行”。本书将介绍 Maven 这一跨平台的项目管理工具。作为 Apache 组织中的一个颇为成功的开源项目,Maven 主要服务于基于 Java 平 台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven 都能 大显身手。

阅读全文 »

面向对象语言中,一般会有 “静态变量”,也就是给整个类共享的变量,如 C++,java 中 static 修饰的变量。但是在 python 中并没有 static 这个关键字,实现类似功能需要依靠 python 中的类属性和实例属性的语法特点。本文主要就是讲述这两种属性的区别。

阅读全文 »
0%