摘要: 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 1、思路 阅读全文
posted @ 2020-05-14 23:52 Z-Dey 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 线程安全问题 在多个线程同时访问一个相同的资源的时候会发生线程安全问题。 举个栗子: 买票问题,三个窗口进行买票。 运行结果: 很明显可以看出,在三个线程同时去访问Ticket类的时候,票的数量出现的 重复 和 错误(结果为0) 的情况。 为什么会出现这种情况呢? 因为线程是并发的,并发就是三个线程 阅读全文
posted @ 2020-05-14 23:41 Z-Dey 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 多线程的另外两种创建方式 线程的创建总共有四种方式,分别是继承Thread类、实现Runnable接口、实现Callable接口和通过线程池创建 在前面我已经学习了前面两种创建线程的方式,今天来学习一下后面两种创建线程的方式。Callable接口和线程池技术是在JDK5.0以后添加的。 1、实现Ca 阅读全文
posted @ 2020-05-14 19:00 Z-Dey 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 多线程生命周期 一个线程经过一次完成的运行之后会经历5中状态。 新建:当一个线程类被声明并创建时,创建的线程对象处于新建状态。 MyThread t = new MyThread(); 就绪:当一个处于新建状态的线程对象调用start()方法时,线程对象处于就绪状态。等待CPU进行调度。 t.sta 阅读全文
posted @ 2020-05-14 16:53 Z-Dey 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 多线程学习 基础知识 1、程序、进程、线程 程序:为了完成某个任务,使用某种特定的语言(Java)所编写的指令(代码)的集合。程序是静态的。 进程:一个正在运行的程序就可以叫做进程。 例如:运行中的QQ就是一个进程。 进程是动态的,程序是静态的。 进程是资源分配的最小单位,系统在运行时会为每个进程分 阅读全文
posted @ 2020-05-14 16:19 Z-Dey 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。 「距离值」 定义为符合此描述的元素数目:对于元素 arr1[i] ,不存在任何元素 arr2[j] 满足 |arr1[i] arr2[j]| d=2 |4 9|=5 d=2 |4 1|=3 d= 阅读全文
posted @ 2020-05-14 11:23 Z-Dey 阅读(109) 评论(0) 推荐(0) 编辑