在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析。本部分关注可以聚合、合并、重塑数据的方法。 1、层次化索引 层次化索引(hierarchical indexing)是pandas的一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它使你能以低纬度形式处理 ...
分类:
编程语言 时间:
2019-12-08 10:55:48
阅读次数:
97
之前的博文也说到了如果多线程对于访问的公共资源操作都是原子操作,那么可以避免竞争条件。关于多线程的竞争可以百度。 1.执行最基本的原子操作 c#提供了一系列供我们使用的原子操作的方法和类型,比如我们的自增和自减操作。 看代码 class Program { private static int _c ...
分类:
编程语言 时间:
2019-12-06 11:42:16
阅读次数:
102
设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示()。 一个进程进入了临界区,另一个进程等待 没有一个进程进入临界区 两个进程都进入临界区 两个进程都在等待 互斥信号量不采用自旋锁的方式实现,mutex初始值为1,当一个准备进入临界区时,mutex - 1 = 0,该进 ...
分类:
系统相关 时间:
2019-12-02 23:18:33
阅读次数:
129
原文:https://www.jianshu.com/p/d634316a9487 在我们开发程序后,如果有一些问题需要对程序进行调试的时候,日志是必不可少的,这是我们分析程序问题常用的手段。 日志使用 日志分析,就是根据输出的日志信息,分析挖掘可能的问题,我们使用fmt.Println系列函数也可 ...
分类:
其他好文 时间:
2019-11-29 22:20:07
阅读次数:
109
假设我们现在有这么一个需求: 计算1-200之间各个数的阶乘,并将每个结果保存在mao中,最终显示出来,要求使用goroutime。 分析: (1)使用goroutime完成,效率高,但是会出现并发/并行安全问题; (2)不同协程之间如何通信; 对于(1):不同协程之间可能同时对一块内存进行操作,导 ...
分类:
其他好文 时间:
2019-11-28 21:27:36
阅读次数:
108
https://www.cnblogs.com/zhanlang96/p/4793511.html 人工智能遵循着:感知->思考->行动决策方法:有限状态机(Finite-State Machines),分层状态机(Hierarchical Finite-State Machines),行为树(Be ...
分类:
其他好文 时间:
2019-11-27 16:10:21
阅读次数:
76
在多进程程序中(vfork创建的多进程除外),即使是全局变量也无法共享,各个进程都会保存局部变量或全局变量的副本,供自己使用。 共享内存将文件地址映射到内存中即可让多个进程共享内存中的数据。 内存映射API #include<sys/mman.h> void *mmp(void *addr, siz ...
分类:
其他好文 时间:
2019-11-25 18:12:54
阅读次数:
80
一. 互斥量 (一)Mutex系列类 1. std::mutex:独占的互斥量,不能递归使用。 2. std::recursive_mutex:递归互斥量。允许同一线程多次获得该互斥锁,可以用来解决同一线程需要多次获取互斥量时死锁的问题。 3. std::time_mutex和std::recurs ...
分类:
其他好文 时间:
2019-11-17 15:05:37
阅读次数:
55
word2vec作为神经概率语言模型的输入,其本身其实是神经概率模型的副产品,是为了通过神经网络学习某个语言模型而产生的中间结果。具体来说,“某个语言模型”指的是“CBOW”和“Skip-gram”。具体学习过程会用到两个降低复杂度的近似方法——Hierarchical Softmax或Negati ...
分类:
其他好文 时间:
2019-11-17 12:53:08
阅读次数:
117
背景 C++多线程编程中通常会对共享的数据进行写保护,以防止多线程在对共享数据成员进行读写时造成资源争抢,导致程序出现未定义或异常行为。通常的做法是在修改共享数据成员时进行加锁(mutex)。在使用锁时通常是在对共享数据进行修改之前进行lock操作,在写完之后再进行unlock操作,但经常会出现lo ...
分类:
其他好文 时间:
2019-11-14 09:59:17
阅读次数:
85