03 2021 档案
摘要:1. 新建(NEW):新创建了一个线程对象。 2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。 3. 运行(RUNNING):可运行状态(runnable)的线
阅读全文
摘要:1. 多线程并发安全问题 多线程环境下,多个线程是并发执行的,并且基于无序的cpu的争夺机制,线程的执行顺序是不确定的, 此时如果多个线程同时去操作共享资源,就有可能因为线程的无序执行,产生一些意外的情况,这种问题就统称为多线程并发安全问题。 2. 多线程并发安全问题产生的条件 a. 有共享资源 b
阅读全文
摘要:1. 使用cat /proc/meminfo 查看RAM使用情况。/proc/meminfo列出了所有你想了解的内存的使用情况。 2. 使用free查看系统内存使用情况。列说明如下: total:总计物理内存的大小 used:已使用多大 free:可用有多少 shared:多个进程共享的内存总额 b
阅读全文
摘要:function demo(){ let a = 100 return function(){ console.log(a) } } let a = 200 demo() 通过外面访问方法内部的局部变量。 这种闭包比较占用内存 局部属性一直没有被垃圾回收
阅读全文
摘要:Promise的用途1. 用于异步计算2. 可以将异步操作序列化,按照期望的顺序进行执行, 返回符合预期的结果3. 在对象之间传递和操作Promise,帮助我们处理队列产生的原因 .JavaScript包含大量异步操作。 js为交互检查表单而生。操作DOM 事件监听也是一种异步操作 ajax回调 j
阅读全文