![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【多线程】
文章平均质量分 93
有猿再见
我不想跟你们一样千篇一律
展开
-
java线程学习(八):多线程高级使用之线程池的使用(非常推荐,涉及:ThreadPoolExecutor,Executors,ThreadPoolExecutor,ScheduledThreadP)
前言: 通过前面几篇文章的学习,对多线程的知识了解了很多,同时也明白,其实学习不仅仅要看书,看文章,还要自己动手去敲demo,顺便写点文章收获更多。当然多线程如果仅仅是用前面几篇的知识的话,那未免也太肤浅了,毕竟,线程如果频繁开启和关闭的话,对系统资源的消耗那是相当大的。所以,从本篇文章起,我们开启对线程的更高一级的学习,那就是使用线程池去管理线程的使用。线程池的学习,主要还是学习JDK提供...原创 2018-12-24 15:28:02 · 1213 阅读 · 1 评论 -
java线程学习(二): 终止线程讲解:Stop()方法(后附如何正确终止线程)
本章来学习Java的stop线程终止方法;老规矩,先看源码: @Deprecated public final void stop() { SecurityManager var1 = System.getSecurityManager(); if (var1 != null) { this.checkAccess(); if (this != currentThread...原创 2018-12-14 18:03:59 · 1037 阅读 · 0 评论 -
java线程学习(四):线程等待wait()和通知notify()的详细使用
线程等待wait()和通知notify(),主要用于多线程之间的协作,而且这两个方法都是属于Object类,说明任何对象都可以调用这两个方法。当在一个对象实例上调用wait()方法后,当前线程就会在这个对象上等待。直到另外的线程调用了notify()方法,出于等待的线程才得以继续进行。这样,多线程之间的协作就可以用这两个方法进行通信了。先看下例子:package stop_demo;pu...原创 2018-12-17 16:39:40 · 7006 阅读 · 2 评论 -
java线程学习(三):线程中断 interrupt() 方法的使用
上一章节中,我们对线程终止stop方法进行了讲解,stop终止线程的方法已经被丢弃,原因是线程的终止太暴力,会导致不必要的数据错误,所以stop方法在不自信的情况下,慎用慎用。。。。同时,也提供了较为完善的终止方案了。本节就来学习线程中断 interrupt() 方法的使用:...原创 2018-12-17 11:27:53 · 415 阅读 · 0 评论 -
java线程学习(一): 多线程中start()和run()的区别
趁着有空,看看线程Thread的源码,挺有意思的 这里来说说多线程中start()和run()的区别。1-跟start()有关的源码:public class Thread implements Runnable { private ThreadGroup group; public synchronized void start() { if (this.threadStatus ...原创 2018-12-14 16:25:21 · 195 阅读 · 0 评论 -
java线程学习(七):JDK并发包之Condition条件
在上一篇中,我们学习了JDK并发包的重入锁的使用,然而线程流程的处理,并不单单是上锁,中断的操作,还有之前学到过的等待wait(),通知notify()等等,但wait(),notify()是与synchronized()搭配使用的。对应于jdk并发包,我们也有相应的类去使用,那就是重入锁的好搭档——Condition接口。Condition接口有以下方法:public interface C...原创 2018-12-19 17:43:00 · 515 阅读 · 1 评论 -
java线程学习(六):JDK并发包之重入锁-ReentrantLock
本章将学习重入锁的以下方法:lock(): 获得锁,如果锁已被占用,则等待;lockInterruptbly(): 获得锁,但优先响应中断;tryLock(): 尝试获得锁,如果成功,返回true,反之返回false,该方法不会等待,执行则立即返回,可用tryLock(long time,TimeUnit unit)重载方法设置等待时间;unlock(): 释放锁。一、重入锁的理解...原创 2018-12-19 15:59:09 · 161 阅读 · 0 评论 -
java线程学习(九):阻塞队列BlockingQueue讲解
上一章中学到了线程池的详细使用以及核心线程池的部分源码,其中就包含有BlockingQueue的信息,那么到底BlockingQueue是什么呢,有什么用呢,本章就是学这个的。Blocking翻译过来为’阻塞’,Queue就是队列的意思,那么BlockingQueue就是阻塞队列了,首先我们要理解,什么是阻塞队列,什么又是非阻塞队列呢?1.阻塞队列和非阻塞队列1.1 区别阻塞队列可以阻塞...原创 2018-12-25 08:43:06 · 192 阅读 · 0 评论