多线程交互(四) 问题线程之间有交互通知的需求,考虑如下情况: 有两个线程,处理同一个英雄,一个加血,一个减血。 减血的线程,发现血量 = 1,就停止减血,知道加血的线程为英雄加了血,加可以继续减血。 一、不好的解决方式1)、故意设计减血线程频率更高,盖伦的血量迟早会到达 1 2)、减血线程中使用 while 循环判断 hp 是否为 1,如果是 1 就不停的循环,知道加血线程回复了血量 3)、这种方式会大 2022-09-13 Java > 多线程 #原创 #Java #多线程
剑指 Offer 30. 包含min函数的栈(四十) 一、题目描述这是 LeetCode 上:剑指 Offer 30. 包含min函数的栈,难度为 简单。 Tag:「栈」 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例 1: 12345678MinStack minStack = new MinStack();minStack.push(-2) 2022-09-13 数据结构和算法 > 算法 #原创 #数据结构和算法
coroutine 源代码: 1234567891011121314151617181920212223242526class CoroutineActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceSta 2022-09-13
多线程同步(三) 一、演示多线程同步问题多线程的同步问题是指多个线程同时修改一个数据的时候,可能导致的问题,多线程的问题,也叫并发(Concurrency)问题。 假设盖伦有 10000 滴血,并且在基地里,同时又被对方多个英雄攻击,相当于: 有多个线程在减少盖伦的 hp,同时又有多个线程在恢复盖伦的 hp 假设线程的数量是一样的,并且每次改变的值都是 1,那么所有线程结束后,盖伦的 hp 应该还是 10000。 2022-09-12 Java > 多线程 #原创 #Java #多线程
剑指 Offer 09. 用两个栈实现队列(三十九) 一、题目描述这是 LeetCode 上:剑指 Offer 09. 用两个栈实现队列,难度为 简单。 Tag:「栈」、「队列」 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 1234输入:["CQueu 2022-09-12 数据结构和算法 > 算法 #原创 #数据结构和算法
常见线程的方法(二) 一、暂停当前线程:sleep1)、Thread.sleep(1000) :表示当前线程暂停 1000 毫秒,其他线程不受影响 2)、Thread.sleep(1000) 会抛出 InterruptedException 中断异常,因为当前线程 sleep 的时候,有可能被停止,这时就会抛出 InterruptedException 代码实现: 123456789101112131415161718 2022-09-11 Java > 多线程 #原创 #Java #多线程
剑指 Offer 50. 第一个只出现一次的字符(三十八) 一、题目描述这是 LeetCode 上:剑指 Offer 50. 第一个只出现一次的字符,难度为 简单。 Tag:「哈希表」、「字符串」 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例 1: 12输入:s = "abaccdeff"输出:'b' 示例 2: 12输入:s = "" 输出 2022-09-11 数据结构和算法 > 算法 #原创 #数据结构和算法
启动一个线程(一) 一、线程的概念首先要理解进程(Processor)和线程(Thread)的区别: 1、进程:启动一个 LOL.exe 就叫一个进程,接着又启动一个 DOTA.exe,这叫两个进程。进程是操作系统执行的最小单位 2、线程:线程是在你进程内部同时做的事情,比如在 LOL 里面,有很多事情在同时发生,如:盖伦击杀提莫的同时,赏金猎人在击杀盲僧,这种就是由多线程实现的。线程是 CPU 执行的最小单位 此处 2022-09-10 Java > 多线程 #原创 #Java #多线程
剑指 Offer 29. 顺时针打印矩阵(三十七) 一、题目描述这是 LeetCode 上:剑指 Offer 29. 顺时针打印矩阵,难度为 简单。 Tag:「数组」、「矩阵」、「模拟」 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 12输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5] 示例 2: 12输入:matrix = [[1,2,3,4], 2022-09-10 数据结构和算法 > 算法 #原创 #数据结构和算法
剑指 Offer 05. 替换空格(三十六) 一、题目描述这是 LeetCode 上:剑指 Offer 05. 替换空格,难度为 简单。 Tag:「字符串」 请实现一个函数,把字符串 s 中的每个空格替换成”%20”。 示例 1: 12输入:s = "We are happy."输出:"We%20are%20happy." 提示: 1、0 <= s 的长度 <= 100 2022-09-09 数据结构和算法 > 算法 #原创 #数据结构和算法