
JAVA多线程
要强不要秃
永远的学习者。
展开
-
一文搞懂Executor执行器和线程池的关系,整体介绍其任务执行/调度体系:ThreadPoolExecutor、ScheduledExecutorService
一文搞懂Executor执行器和线程池的关系,整体介绍其任务执行/调度体系:ThreadPoolExecutor、ScheduledExecutorService原创 2022-07-14 09:25:23 · 208 阅读 · 0 评论 -
CompletableFuture 详解
CompletableFuture 详解一CompletableFuture 详解二原创 2020-09-28 17:24:05 · 532 阅读 · 0 评论 -
多CPU/多核/多进程/多线程/并发/并行之间的关系
多CPU/多核/多进程/多线程/并发/并行之间的关系原创 2020-09-28 17:16:40 · 388 阅读 · 0 评论 -
main线程终止,其他线程还会运行吗?
main线程终止,其他线程还会运行吗?原创 2020-08-11 08:05:20 · 480 阅读 · 0 评论 -
高并发与多线程网络学习笔记(十)多线程的休息室WaitSet
什么是线程休息室:1.当调用wait()方法时,会有一个waitset的概念,当调用一个对象的wait()方法后,就会将该线程放入到该对象的wait set中,这个wait set是一个虚的概念,并不是真实存在的,靠JVM实现,各个JVM 的实现是不相同的。2.线程从wait set中唤醒的顺序不是FIFO。3.当线程被block后,再次被唤醒时需要重新获取锁,但是会从上一次执行的地方继续往下执行,而不是再次执行整个线程体。`public class WaitSet {private static原创 2020-07-26 15:51:40 · 126 阅读 · 0 评论 -
高并发与多线程网络学习笔记(九)单例模式与 volatile内存模型
Singleton的六种写法饿汉模式优点:在类加载时就初始化实例,避免了多线程的同步问题;缺点:在类加载的同时就创建了单例对象(instance 变量为static修饰),如果长时间不使用此单例对象就会造成资源浪费,并且造成类加载过程变慢。public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ } public原创 2020-07-13 08:51:16 · 144 阅读 · 0 评论 -
高并发与多线程网络学习笔记(八):线程组和线程池
线程组线程组的作用是:可以批量管理线程或线程组对象,有效地对线程或线程组对象进行组织。构造函数//注意:Main线程的ThreadGroup的名字是main,Main线程的名字也是main,Main线程是由jvm创建ThreadGroup(String name)//默认parent为当前线程组ThreadGroup(ThreadGroup parent, String name)将某一个线程放入线程组:public class ThreadGroupCreat { public原创 2020-07-04 08:52:10 · 139 阅读 · 0 评论 -
高并发与多线程网络学习笔记(七):如何给你的应用程序注入钩子及如何捕获线程运行期间的异常
1.如何获得线程的异常线程中的run()方法是不允许抛出异常的public class ExitCapture { public static void main(String[] args) { //java中的Runtime可以调用shell脚本和.exe文件 //在程序运行结束时得到一个钩子,当程序抛出异常时并不会立即结束。 Runtime.getRuntime().addShutdownHook(new Thread(()->{原创 2020-07-02 08:45:23 · 153 阅读 · 0 评论 -
高并发与多线程网络学习笔记(六):线程组
线程组实现原理:原创 2020-07-02 09:06:17 · 120 阅读 · 0 评论 -
高并发与多线程网络学习笔记(六):如果自己实现一个带有超时功能的Lock锁
//先定义接口import com.learn.thread.TicketWindowRunable;import java.util.Collection;public interface Lock { class TimeOutException extends Exception{ public TimeOutException(String message){ super(message); } } void原创 2020-06-29 08:19:35 · 145 阅读 · 0 评论 -
详解synchronized与Lock的区别与使用
详解synchronized与Lock的区别与使用原创 2020-06-26 09:43:09 · 120 阅读 · 0 评论 -
高并发与多线程网络学习笔记(五):线程的通信
数据同步与共享多个线程在抢占CPU的时候会出现切换,对共享变量的修改无法保证先后顺序。因此如果存在对共享变量的判断,则需要对其判断和修改进行同步改写。synchronized同步使用synchronized所在的代码,相当于加上一层栅栏,就像我们去动物园检票口一样,一开始大家从各个地方来,然后排队一个个地检票,检完票后又分散各个地方玩。同步方法锁为this,即当前实例。 public synchronized void save(){}锁为当前class public synchroni原创 2020-06-15 08:46:24 · 185 阅读 · 0 评论 -
高并发与多线程网络学习笔记(四):优雅的结束线程的生命周期
线程结束不推荐stop()方法,并且该方法已明确过时。因此有以下结束线程的方案方法一:设一个volatile boolean类型的标志,并通过设置这个标志为true或false来控制while循环是否退出 private static class Worker extends Thread{ private volatile boolean start=true; @Override public void run() { while(st原创 2020-06-14 15:50:20 · 129 阅读 · 0 评论 -
高并发与多线程网络学习笔记(三) 线程的Interrupt方法
作用:给线程打上中断标记我们不能直接把一个线程搞挂掉, 但有时候又有必要让一个线程死掉, 或者让它结束某种等待的状态 该怎么办呢?一个比较优雅而安全的做法是:使用等待/通知机制或者给那个线程一个中断信号, 让它自己决定该怎么办。相关方法(后面两个方法都是检查是否被打上了中断标记,第二个方法是Thread的类方法,第三个方法是对象方法)两种获取中断状态方法的区别Thread.currentThread().interrupted();该方法返回为true的时候,会将中断状态重置为falseTh原创 2020-06-14 15:06:33 · 142 阅读 · 0 评论 -
高并发与多线程网络学习笔记(三) 线程的Join方法
Join方法作用:主线程进入阻塞状态,让“主线程”等待“子线程”结束之后才能继续运行。注意: 是调用join()方法的当前线程进入阻塞,而不是被调用的线程对象进入阻塞。join()是相对当前线程的,如果在当前线程调用了两个线程的join()方法,比如在main线程中先调用t1.join(),然后调用t2.join();这样只能保证t1和t2线程在主线程结束前执行完,并不会决定t1和t2在主线程中的执行顺序。也可以在线程自己的执行体中调用自己的join()方法,这样会导致该线程永远不可能结束。Thr原创 2020-06-14 13:49:40 · 139 阅读 · 0 评论 -
高并发与多线程网络学习笔记(二) 守护线程的创建和线程优先级
将线程设为守护线程设置守护线程,在start()方法之前进行设置void setDaemon(boolean on)//Marks this thread as either a daemon thread or a user thread.判断线程是不是守护贤线程boolean isDaemon()在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程)守护线程会伴随创建线程结束而结束。这个特点使用妥当可以用来结束和释放线程,不妥当会出现线程莫名原创 2020-06-14 11:10:04 · 122 阅读 · 0 评论 -
高并发与多线程网络学习笔记(一)Tread线程特点和线程生命周期
进程和线程的区别进程是资源分配的最小单位,线程是CPU调度的最小单位进程是一个资源的容器,为进程里的所有线程提供共享资源,是对程序的一种静态描述,(例如:可以把一个应用看成是一个进程,PS:部分应用还有一个守护进程),对于单个(与单核不是一个概念)CPU来说,一个时刻只能运行一个进程,进程之间可以相互切换。线程是计算机最小的调度和运行单位,是对程序的一种动态描述,一个进程中可以包含多个线程(各个线程是独立的)。一静一动,正好组成了完整的程序注意:CPU的核数和线程数是正相关的,四核cpu可以同时原创 2020-06-09 08:59:42 · 303 阅读 · 0 评论 -
Java多线程系列笔记
系列笔记原创 2020-06-08 20:54:49 · 146 阅读 · 0 评论