JUC包下的ReentrantLock是基于Aqs模板实现的,它区分公平锁和非公平锁,内部实现了两个同步器,本文关注非公平锁部分。 伪代码 我们先看两个伪代码: 1、获取锁 我们看到,如果一次获取成功则结束,如果没有获取成功将进入循环中,并且当前线程阻塞直到被唤醒并且获取到锁才结束。 2、释放锁 释 ...
分类:
其他好文 时间:
2019-06-17 01:15:02
阅读次数:
175
六、线程得等待和唤醒 1.wait()和notify()的简单示范 public class Wait extends Thread{ public synchronized void run() { System.out.println(getName()+"执行notify()"); notif ...
分类:
编程语言 时间:
2019-06-16 09:40:47
阅读次数:
115
[TOC] 迭代器 迭代器:迭代的工具。迭代可以看成重复,并且每一次的重复都是基于上次的结果来的,不是单纯的重复。 可迭代对象 python中一切皆对象,如: 对于这一切对象,只要有 方法的对象,都是可迭代对象。 总结 可迭代的对象:Python内置的str,list,tuple,dict,set, ...
分类:
其他好文 时间:
2019-06-11 19:26:44
阅读次数:
139
线程的状态 初始化—就绪—运行—终止 Sleep : 超时等待,过了一段时间就会进入就绪状态进行竞争cpu资源。 Wait: 等待状态,没有通过notify 或者 notifyAll 唤醒,就会一直进行等待。 Block: block io 或者 遇到加锁的代码时, 接受到数据或者获取到锁就会到运行 ...
分类:
编程语言 时间:
2019-06-08 19:18:02
阅读次数:
134
HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_DMA_Init();MX_ADC_Init();MX_LPUART1_UART_Init();MX_USART1_UART_Init();MX_RTC_Init();WorkFinished=0;//工作没有完成while(1){LED1_ON;LED2_ON;LED3_ON;HAL_Delay(
分类:
其他好文 时间:
2019-06-07 22:57:03
阅读次数:
378
【问题描述】 测试部反馈,红外模式下,按power键进入假待机,按红外语音键会唤醒。 背景交代:红外语言键是我们自定义的按键,键值225。在红外模式下按会弹提示框“没连蓝牙,请连蓝牙使用语音键 【问题结论】 不是问题,这是Android框架源码中的功能设定,鉴于我们不修改ATV9的框架,所以该问题非 ...
分类:
移动开发 时间:
2019-06-07 19:05:32
阅读次数:
309
五个线程同时往 HashMap 中 put 数据会发生什么? ConcurrentHashMap 是怎么保证线程安全的? 在分析 HashMap 源码时还遗留这两个问题,这次我们站在 Java 多线程内存模型和 synchronized 的实现原理,这两个角度来彻底分析一下。至于 JDK 1.8 的 ...
分类:
编程语言 时间:
2019-06-07 10:42:43
阅读次数:
124
AQS是一个抽象类,提供了一套通用的控制同步状态,线程阻塞/唤醒,等待队列管理的操作。
分类:
编程语言 时间:
2019-06-06 15:53:55
阅读次数:
133
用一个例子来说明Object对象中的wait方法和notifyAll方法的使用。 首先定义一个消息类,用于封装数据,以供读写线程进行操作: 读线程,从Message对象中读取数据,如果没有数据,就一直阻塞等待: 写线程,往Message对象中写数据,写入成功就调用 message.notifyAll ...
分类:
编程语言 时间:
2019-06-03 00:11:15
阅读次数:
165
ubuntu系统熄屏无法唤醒 解决办法:重启后,安装laptop-mode-tools工具包。 1.检查是否安装了grep laptop-mode-tools 工具包 $ dpkg -l | grep laptop-mode-tools 如果执行命令无结果输出,表示未安装(如果已安装,忽略第2步) ...
分类:
系统相关 时间:
2019-05-31 23:34:14
阅读次数:
198