AcWing Description 求$N$个节点的无向连通图有多少个,节点有标号,编号为$1~N$. $1<=N<=50$ Sol 在计数类$DP$中,通常要把一个问题划分成若干个子问题,以便于执行递推. 一个连通图不容易划分,而一个不连通的无向图则很容易划分成结点更少的两部分.所以我们把问题转 ...
分类:
其他好文 时间:
2019-07-27 23:47:20
阅读次数:
133
内存使用量少,几k vs 至少1MB 可增长的分段堆栈 启动时间比线程快 在共享数据结构时避免使用互斥锁 https://medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65 非常快速的上下文切换 没有并发问题 选择您的调度程 ...
分类:
编程语言 时间:
2019-07-27 09:44:38
阅读次数:
398
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 /*提示出租车到达的条件变量*/ 11 pthread_cond_t taxiCond =... ...
分类:
其他好文 时间:
2019-07-26 01:41:28
阅读次数:
120
一、设计模式大概谈 代码的一些写法,与常规的写法不太一样,程序灵活,维护起来很方便,但是别人接管、阅读代码很痛苦。 用设计模式理念写出来的代码很晦涩。<< head first>> 老外应付特别大的项目时候,把项目开发经验、模块划分经验,总结成设计模式。 二、单例设计模式 使用频率高。 单例:整个项 ...
分类:
其他好文 时间:
2019-07-24 20:49:48
阅读次数:
102
1.线程理论 2.开启线程的两种方式 3.线程与进程对比 4.线程方法 5.守护线程 6.互斥锁 7.死锁现象与递归锁 8.信号量 ...
分类:
编程语言 时间:
2019-07-24 17:46:37
阅读次数:
123
一、互斥量mutex 保护共享数据,操作时,用代码把共享数据锁住,操作数据,解锁。其他线程要操作共享数据的线程必须等待解锁,锁住,操作,解锁。 互斥量就是类对象,一个锁,多个线程用lock()成员函数加锁这个锁头,只有一个线程能锁成功,成功的标志是lock函数返回,如果没有锁成功,那么流程就卡在lo ...
分类:
其他好文 时间:
2019-07-23 17:18:51
阅读次数:
155
1、互斥锁总是必须由给其上锁的线程解锁,信号量的挂出确不必由执行过它的等待操作的同一线程执行。 生产者与消费者伪代码 2、互斥锁要么被锁住,要么被解锁(二值状态,类似于二值信号量) 3、既然信号量有一个与之关联的状态(它的数值),那么信号量的挂出操作总是被记住。然而当向一个条件变量发送信号时,如果没 ...
分类:
其他好文 时间:
2019-07-23 15:17:23
阅读次数:
259
一 问题概述 线程或者进程之间有两种关系 同步和互斥,我们通常实现同步方法是使用线程的等待唤醒机制,而等待唤醒机制的使用是建立在互斥的继承上的。但是同步线程并不一定是必须要实现互斥的。比如一个线程打印A,一个线程打印B。这两个线程就没有互斥关系,但是提出这么个需求:交替打印A、B 。我们一般的解决方 ...
分类:
编程语言 时间:
2019-07-22 15:23:34
阅读次数:
352
导入线程包 准备函数线程,传参数 类继承线程,创建线程对象 线程共享全面变量,但在共享全局变量时会出现数据错误问题使用 threading 模块中的 Lock 类,添加互斥锁可以解决线程共享全局变量问题 互斥锁可能导致死锁问题在线程间共享多个资源的时候,如果两个线程分别占有一部分资源,并且同时在等待 ...
分类:
编程语言 时间:
2019-07-21 13:34:19
阅读次数:
90
from threading import Thread,Lock import time mutex=Lock() n=100 def task(): global n temp=n time.sleep(0.1) n=temp-1 if __name__ == '__main__': l=[] ...
分类:
其他好文 时间:
2019-07-20 09:40:05
阅读次数:
82