《少有人走的路》书摘

人可以拒绝任何东西,但绝对不可以拒绝成熟。拒绝成熟,实际上就是在规避问题、逃避痛苦。规避问题和逃避痛苦的趋向,是人类心理疾病的根源,不及时处理,你就会为此付出沉重的代价,承受更大的痛苦。人生是一个面对问题并解决问题的过程。问题能启发我们的智慧,激发我们的勇气;问题是我们成功与失败的分水岭。为解决问题而付出努力,能使思想和心智不断成熟。规避问题和逃避痛苦的倾向,是人类心理疾病的根源。所谓自律,是以积极而主动的态度,去解决人生痛苦的重要原则,主要包括四个方面:推迟满足感、承担责任、尊重事实、保...

⚛ Atomic 原子操作与多线程

何谓原子操作?所谓原子操作,就是多线程程序中“最小的且不可并行化的”操作。对于在多个线程间共享的一个资源而言,这意味着同一时刻,多个线程中有且仅有一个线程在对这个资源进行操作,即互斥访问。JS 中的 AtomicChrome 67+实现了SharedArrayBuffer和Atomics。共享阵列缓冲区的概念是,您将消息发布给工作线程,但不是复制数组的内容,而是发送对它的引用,以便多个工作线程可以共享内存块。原子的概念是它们提供可以“一次”发生的操作。这是为什么原子如此重要的一个示例:执行...

Jest 模拟定时器

因为定时器依赖于实时时间,所以在测试时不是很方便。Jest 可以将定时器换成允许我们自己控制时间的功能。定时器模拟jest.useFakeTimers(); // 使用标准计时器函数的模拟版本 jest.useRealTimers() // 使用标准计时器函数的真实版本 jest.clearAllTimers(); // 从计时器系统中删除任何挂起的计时器通常每次测试之前手动调用或者在 beforeEach 函数中调用 useFakeTimers。不这样做会导致未重置内部使用计...