在多线程领域:所谓阻塞,在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤醒 为什么需要BlockingQueue 好处是我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为这一切BlockingQueue都给你一手操办了,在concurrent包发布以前,在多线程环 ...
分类:
其他好文 时间:
2020-01-05 13:35:29
阅读次数:
81
1.让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。 2.CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。其它线程调用countDown方法会将计算器减1(调用countDown方法的线程不会阻塞),当计数器的值变成零时,因调用await方法 ...
分类:
其他好文 时间:
2020-01-04 22:44:03
阅读次数:
99
刚开始做单片机项目时,主要以51和STM32F系列为主,并未涉及到RTC和看门狗这一块儿,主要依靠程序的正常逻辑、代码加固和增加断言等方式加固程序,除了功能上的问题,倒也没出现其它奇葩的现象;这也使我养成了一个不好的习惯,那就是不喜欢使用看门狗,总觉得看门狗用处不是那么大,写程序还要考虑喂狗方式,防 ...
分类:
其他好文 时间:
2020-01-01 23:30:59
阅读次数:
131
线程相关 Java多线程实现方式 继承Thread,实现Runnable接口,实现Callable接口(能抛异常且有返回值,不常用) 为什么有了继承Thread方式还要有Runnable接口方式 实现接口的方式适合多个相同程序代码的线程去处理同一个资源,可以避免Java中单继承的限制 为什么JVM启 ...
分类:
编程语言 时间:
2020-01-01 15:05:50
阅读次数:
68
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-sca ...
分类:
Web程序 时间:
2019-12-31 18:56:49
阅读次数:
239
一、前言 LockSupport工具类用于阻塞或唤醒线程。LockSupport定义了一组的公共静态方法,这些方法提供了最基本的线程组阻塞和唤醒功能,而LockSupport也成为构建同步组件的基础工具。 LockSupport定义了一组以park开头的方法用来阻塞当前线程,以及unpark(Thr ...
分类:
其他好文 时间:
2019-12-30 22:54:06
阅读次数:
101
select和epoll都是多路复用的实现。 select: 调用select(fds),把fds(最多1024个)从用户空间拷贝到内核空间,进程阻塞, 当socket缓冲区有数据,唤醒进程,遍历fds,处理。 epoll: epoll_create在内核空间创建eventpoll对象(包括红黑树和 ...
分类:
其他好文 时间:
2019-12-29 20:13:04
阅读次数:
71
1、我们先验证下wait可以用notify和notifyAll来唤醒 如下测试代码: 执行结果: 2、notify和notifAll的区别 两个概念 锁池EntryList 等待池 WaitSet ...
分类:
其他好文 时间:
2019-12-28 22:59:35
阅读次数:
107
/** * 现在两个线程,可以操作初始值为零的一个变量,实现一个线程对该变量加1,一个线程对该变量减1,交替,来10轮。 * 1 多线程编程工程化模板-上 * 1.1 线程 操作 资源类 * 1.2 高内聚 低耦合 * * 2 多线程编程工程化模板-下 * 2.1 判断 * 2.2 干活 * 2.3 ...
分类:
编程语言 时间:
2019-12-27 09:30:55
阅读次数:
84
基本前提知识: 一:Object/wait(), notify(), notifyAll() 1:wait() 方法暂停当前线程,并立即释放对象锁; 2:notify()/notifyAll() 方法唤醒其他等待该对象锁的线程,并在执行完同步代码块中的后续步骤后,释放对象锁 3:notify()和n ...
分类:
编程语言 时间:
2019-12-26 19:42:40
阅读次数:
94