摘要:
死锁问题 什么是死锁? 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。 比如现在A有倚天剑,B有屠龙刀,A想要B的屠龙刀,B想要A的倚天剑,但是A不想把倚天剑给B,B同样也不想把屠龙刀给A。 两个人都等着对方把武器交 阅读全文
摘要:
生产者和消费者问题 生产者和消费者的问题是一个线程通信的例子。 比如买馒头,需要先进行生产,生产了就通知消费者来吃馒头。如果馒头没了就通知生产者继续生产。 运行结果: 这里需要注意synchronized的锁对象应该是馒头店,不能是this。因为馒头店只有一个,而this指当前对象,生产者和消费者都 阅读全文
摘要:
线程间的通信 线程通信就是线程与线程间进行信息的交换。 这里可以举个例子,两个线程交替的打印0 9这10个数字。 首先分析一下,比如线程一先开始打印,当它打印了数字0后,他应该 等待 线程二打印数字1,线程二打印了之后又要 等待 线程一打印数字2... 那怎么样才能让线程一开始等待呢?这里可以使用O 阅读全文
摘要:
题目描述 编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。 示例: | Id | Email | | | | | 1 | a@b.com | | 2 | c@d.com | | 3 | a@b.com | 根据以上输入,你的查询应返回以下结果: | Email | | | | a 阅读全文
摘要:
题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。 比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1: 输入: s = "abcdefg", k = 2 输出: "cdefga 阅读全文
摘要:
题目描述 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 : 数组的长度为 [1, 20,000]。 数组中元素的范围是 [ 10 阅读全文