SharpCJ

树的遍历与递归

最近做一个统计工作,需要遍历一些文件,一个文件夹下面有很多层的小文件,如何算出这个文件夹下面有多少文件?相信很多人第一时间都能想到递归遍历,这是最直接,最简单的办法。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,可能会导致栈溢出。当文件夹深度足够深,递归的...

深入理解Python中的生成器

本文转载自:https://python.jobbole.com/81911/ 该文是目前为止我看到关于python生成器最通俗易懂的文章。故而转载。 生成器(generator)概念 生成器不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIteration异常结束。 生成器语法 生成器表达式: 通列表解析语法,只不过把列表解析的[]换成()...

Python3 多线程的两种实现方式

最近学习 Python3 ,希望能掌握多线程的使用,在此做个笔记。同时也希望Python 牛人指点错误。关于线程的概念,前面简单总结了一下 java 的多线程,传送门:java 多线程概念,三种创建多线程的方法。 这里记两种多线程的实现方式方法。 Python的标准库提供了两个模块:_thread和threading,_thread是低级模块,threading是高级模块,对_thread进...

Java 多线程

进程和线程的概念 进程 几乎所有的操作系统都支持进程的概念。一个任务通常对应一个进程。进程具有如下特征: 进程通常是独立存在的,拥有自己独立的资源。 进程拥有自己的生命周期和各种不同的状态。 多个进程可以在单个处理器上并发执行,多个进程之间不会互相响应。 线程 线程是cpu执行的最小单元,一个进程可以有多个线程。一个线程必须有一个父进程。线程可以拥有自己的堆栈,但不拥有系统...

扯一扯 C#委托和事件?策略模式?接口回调?

早前学习委托的时候,写过一点东西,今天带着新的思考和认知,再记点东西。这篇文章扯到设计模式中的策略模式,观察者模式,还有.NET的特性之一——委托。真的,请相信我,我只是在扯淡…… 场景练习 还记得这两个人吗?李雷和韩梅梅,他们见面在打招呼…假设李雷和韩梅梅在中文课上打招呼和英文可上打招呼方式不一样。下面定义两个方法来表示打招呼: //中文方式打招呼 public void Chi...

Python 开篇学习

前言 最近看到一张图,有点意思: 蓝色是(成长+付出),红色是回报。有多久可以达到这个红心,要看我们自已的努力,付出了多少专注与汗水。我想说的是,水平轴并不是时间,如果不能坚持努力,可能永远都到不了那个红心。 背景 最近领导说,之前写了一两个月的 shell 脚本要全部改成 Python 脚本。给我们周五一天时间学习 Python 语法,然后下个周一要投入到工作中。没办法,周末豁出去...