mrlonelyjtr's blog

写BUG的程序猿


  • Home

  • Categories

  • Archives

  • Tags

  • Search

捕获程序整体的终止时

Posted on 2019-02-02 | In Multithread
未捕获的异常的处理器假设程序抛出异常时,并没有编写捕获该异常的catch语句块。通常情况下,这么做会导致程序在输出线程的调用堆栈信息后终止。如果使用Thread类的setDefaultUncaughtedExceptionHandler静态方法,可以设置未捕获的异常的处理器(Uncaught Exc ...
Read more »

java.util.concurrent.ExecutorService接口与Two-Phase Termination模式

Posted on 2019-02-02 | In Multithread
通常,线程都会在ExecutorService接口背后运行。为了优雅地终止运行中的线程,ExecutorService接口准备了shutdown方法。 ExecutorService接口还提供了用于确认终止处理已执行到哪个阶段的方法。 isShutdown方法是用于确认shutdown方法是否已经被 ...
Read more »

【图解Java多线程设计模式】Two-Phase Termination模式

Posted on 2019-02-01 | In Multithread
先执行完终止处理再终止线程。 该模式的要点如下: 安全地终止线程(安全性) 必定会进行终止处理(生存性) 发出终止请求后尽快进行终止处理(响应性) 示例首先会启动一个线程,该线程每隔约500毫秒进行一次计数。接着,在大约10秒后程序就会终止该线程。 类图 时序图 CountupThread.j ...
Read more »

java.util.concurrent包和Future模式

Posted on 2019-01-31 | In Multithread
java.util.concurrent包java.util.concurrent包提供了用于支持Future模式的类和接口。 java.util.concurrent.Callable接口将“返回值的某种处理的调用”抽象化了。Callable接口声明了call方法。call方法与Runnable接 ...
Read more »

【图解Java多线程设计模式】Future模式

Posted on 2019-01-28 | In Multithread
获取Future角色的线程会在稍后使用Future角色来获取运行结果。如果运行结果已经出来了,那么直接领取即可;如果运行结果还没有出来,那么需要等待结果出来。 示例在每次发出请求时都创建一个线程。程序一旦发出请求,就会立即获取返回值。也就是说,会有下面这样的返回值(data)。 Data data ...
Read more »

java.util.concurrent包和Worker Thread模式

Posted on 2019-01-26 | In Multithread
ThreadPoolExecutor类java.util.concurrent.ThreadPoolExecutor类是管理工人线程的类。ThreadPoolExecutor可以轻松地实现Worker Thread模式。ThreadPoolExecutor类可以对线程池(保存和管理工人线程的场所)进 ...
Read more »

【图解Java多线程设计模式】Worker Thread模式

Posted on 2019-01-13 | In Multithread
工人线程(worker thread)会逐个取回工作并进行处理。当所有工作全部完成后,工人线程会等待新的工作到来。 示例ClientThread类的线程会向Channel类发送工作请求(委托)。Channel类的实例雇用了五个工人线程(WorkerThread)进行工作。所有工人线程都在等待工作请求 ...
Read more »

java.util.concurrent包和Thread-Per-Message模式

Posted on 2019-01-02 | In Multithread
Thread-Per-Message模式的七种实现方式 java.lang.Thread类 最基本的创建、启动线程的类 java.lang.Runnable接口 表示线程所执行的“工作”的接口 java.util.concurrent.ThreadFactory接口 将线程创建抽象化 ...
Read more »

进程与线程

Posted on 2019-01-02 | In Multithread
一般来说,一个进程可以包含多个线程。 线程之间共享内存进程与线程之间最大的区别就是内存是否共享。通常,每个进程都拥有彼此独立的内存空间。一个进程不可以擅自读取、写入其他进程的内存。由于进程的内存空间是彼此独立的,所以一个进程无须担心被其他进程破坏。线程之间共享内存。经常让一个线程向内存中写入内容,来 ...
Read more »

【图解Java多线程设计模式】Thread-Per-Message模式

Posted on 2018-12-29 | In Multithread
为每个命令或请求新分配一个线程,由这个线程来执行处理。在Thread-Per-Message模式中,消息的“委托端”和“执行端”是不同的线程。 示例Main类委托Host类来显示字符。Host类会创建并启动一个线程,来处理该委托。启动的线程使用Helper类来执行实际的显示。 类图 时序图 Time ...
Read more »
1…616263…78
mrlonelyjtr

mrlonelyjtr

间歇性踌躇满志,持续性混吃等死

780 posts
18 categories
18 tags
Github
© 2020 mrlonelyjtr
Powered by Hexo
Theme - NexT.Pisces