Java多线程之线程安全 发表于 2020-06-19 更新于 2020-07-02 分类于 多线程 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。 阅读全文 »
Java多线程之sleep、join、yield 发表于 2020-06-17 更新于 2020-07-09 分类于 多线程 Java在多线程开发中,Object类的sleep、join、yield这三个方法比较常见。 阅读全文 »
Java多线程之wait、notify/notifyAll 发表于 2020-06-11 更新于 2020-07-02 分类于 多线程 wait()、notify/notifyAll()方法是Object的final方法,无法被重写。 阅读全文 »
线程的生命周期 发表于 2020-06-10 更新于 2020-07-02 分类于 多线程 Java中线程的状态分为6种,分别是new、runnable、blocked、waiting、timed_waiting、terminated。 阅读全文 »
归并排序 发表于 2020-06-10 更新于 2020-07-02 分类于 排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。 阅读全文 »
选择排序 发表于 2020-06-04 更新于 2020-07-02 分类于 排序 选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。 阅读全文 »
冒泡排序 发表于 2020-06-04 更新于 2020-07-02 分类于 排序 冒泡排序是一种较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 阅读全文 »
停止线程的最佳实践 发表于 2020-06-03 更新于 2020-07-02 分类于 多线程 要使任务和线程能安全、快速、可靠地停止下来,并不是一件容易的事。Java没有提供任何机制来安全地终止线程。但它提供了中断( Interruption),这是一种协作机制,能够使一个线程终止另一个线程的当前工作。 阅读全文 »
启动线程的正确姿势 发表于 2020-06-01 更新于 2020-07-02 分类于 多线程 我们都知道Java多线程的实质是调用Thread类的run()方法,每次我们开启新线程都得调用start()方法,那我们能不能直接调用run()方法进行启动线程呢? 阅读全文 »
究竟如何创建新线程 发表于 2020-05-30 更新于 2020-07-02 分类于 多线程 Java多线程的实现方式到底有几种?网上和书籍中的说法鱼龙混杂,其实多线程的实现方式只有两种,分别是继承Thread类与实现Runnable接口。oracle官方文档中Thread类也明确了实现多线程的方式只有两种。 阅读全文 »