1.线程概念 2.线程创建方式 1.继承thread 2.实现runnable runnable使用最多 3.线程的生命周期及线程的状态 新建状态 就绪状态的线程(已获得所有资源,栈堆内存空间),即start(); 还需要cpu给他执行权,时间片段 运行与就绪可以来回切换 ... ...
分类:
编程语言 时间:
2020-02-09 09:26:17
阅读次数:
89
一、CountDownLatch 场景:主线程需要等待所有子线程执行完毕后再进行汇总 CountDownLatch实现比较简单,继承AQS实现了一个不可重入共享锁Sync 1.不可重入共享锁Sync private static final class Sync extends AbstractQu ...
分类:
编程语言 时间:
2020-02-06 14:54:31
阅读次数:
89
进程Process是对各种资源管理的集合,包含对各种资源的调用、内存的管理、网络接口的调用;一个进程Process可以包含多个子进程,启动一个进程的时候会自动创建一个线程,进程里的第一个线程就是主线程(即python __name__ == ‘__main__’); 二.进程Process模块 对于 ...
分类:
编程语言 时间:
2020-02-04 00:55:59
阅读次数:
100
多线程程序在单核上运行,就是并发 多线程程序在多核上运行,不是并行 Go协程和Go主线程 Go主线程(线程):一个Go线程上,可以起多个协程 ,你可以这样理解,协程是轻量级的线程 Go协程的特点: 1)有独立的栈空间 2)共享程序堆空间 3) 调度由用户控制 4)协程是轻量级的线程3 gorouti ...
分类:
其他好文 时间:
2020-02-04 00:54:45
阅读次数:
85
Redis 常见的性能问题都有哪些?如何解决? Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好不要写内存快照。 Master AOF持久化,如果不重写AOF文件,这个持久化方式对性能的影响是最 ...
分类:
其他好文 时间:
2020-02-01 14:41:44
阅读次数:
123
Observer 和 Subscriber 是完全一样的。它们的区别对于使用者来说主要有两点: onStart(): 这是 Subscriber 增加的方法。它会在 subscribe 刚开始,而事件还未发送之前被调用,可以用于做一些准备工作,例如数据的清零或重置。这是一个可选方法,默认情况下它的实 ...
分类:
编程语言 时间:
2020-01-30 09:31:50
阅读次数:
57
先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。 实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。 但是,子线程执行的结果是要返回厨具的,而run方法是没有返回值的。所以,这才是难点, ...
分类:
其他好文 时间:
2020-01-28 21:31:43
阅读次数:
69
目录 "1. ReentrantLock简介" "2.ReentrantLock和synchronized的比较" "2.1 相同点" "2.2不同点" "3.ReentrantLock相比synchronized的额外功能" "3.1 ReentrantLock可以实现公平锁。" "3.2 .Re ...
分类:
其他好文 时间:
2020-01-28 20:58:58
阅读次数:
59
Java基础部分 1.1 在登录时进行后台验证,后台获取到loginpass与数据库值对比一直? 1.2 Java中的方法覆盖(Overwrite)和方法重载(Overloading)是什么意思? 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或 ...
分类:
编程语言 时间:
2020-01-21 18:10:36
阅读次数:
85
这节介绍RocketMQ客户端的启动流程,即Consumer和Producer的启动流程。 1. 客户端demo 首先先看下客户端的demo Producer: Producer和Consumer的启动类似,在初始化然后进行必要设置(主要是客户端所属的Group和NameSe ...
分类:
其他好文 时间:
2020-01-18 01:14:30
阅读次数:
73