
多线程
NewBee.Mu
这个作者很懒,什么都没留下…
展开
-
Executor工厂方法可以创建出哪四种线程池
① newCachedThreadPool:创建一个可缓存的线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。② newFixedThreadPool:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。③ newScheduledThreadPool:创建一个定长线程池,支持定时及周期性任务执行。④ newSingleThreadPool:创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序执行。...原创 2022-01-16 15:38:12 · 386 阅读 · 0 评论 -
配置ThreadPoolTaskExecutor线程池
package com.xxx.config;import io.github.jhipster.async.ExceptionHandlingAsyncTaskExecutor;import io.github.jhipster.config.JHipsterProperties;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.aop.interceptor.AsyncUnca原创 2021-12-16 13:47:53 · 1265 阅读 · 3 评论 -
wait和sleep的区别
1、原理不同sleep()方法是Thread类的静态方法,是线程用来控制自身流程的,他会使此线程暂停执行一段时间,而把执行机会让给其他线程,等到计时时间一到,此线程会自动苏醒。例如,当线程执行报时功能时,每一秒钟打印出一个时间,那么此时就需要在打印方法前面加一个sleep()方法,以便让自己每隔一秒执行一次,该过程如同闹钟一样。而wait()方法是object类的方法,用于线程间通信,这个方法会使当前拥有该对象锁的进程等待,直到其他线程调用notify()方法或者notifyAll()时才醒来,不过开原创 2021-04-19 13:56:48 · 267 阅读 · 0 评论 -
ThreadLocal 是什么?有哪些使用场景?
ThreadLocal 是线程本地存储,在每个线程中都创建了一个 ThreadLocalMap 对象,每个线程可以访问自己内部 ThreadLocalMap 对象内的 value。经典的使用场景是为每个线程分配一个 JDBC 连接 Connection。这样就可以保证每个线程的都在各自的 Connection 上进行数据库的操作,不会出现 A 线程关了 B线程正在使用的 Connection; 还有 Session 管理 等问题。...原创 2021-04-16 16:43:07 · 410 阅读 · 0 评论 -
什么是线程池?有哪几种创建方式?
线程池就是创建若干个可执行的线程放入一个池(容器)中,有任务需要处理时,会提交到线程池中的任务队列,处理完之后线程并不会被销毁,而是仍然在线程池中等待下一个任务。通过Executors工厂方法创建通过new ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue)自定义创建ThreadPoolExecutor构造函数重要原创 2021-04-12 10:29:53 · 594 阅读 · 0 评论 -
对多线程的理解
首先,什么是多线程。我的理解是多线程就是多个线程同时进行。比如说买火车票,好几个人同时购买火车票,每一个人购买火车票都是一个线程,多个人同时购买自然就是多线程了。说到线程,有一个与之相关的概念叫做进程。所谓进程,就是对于程序的一次执行的过程。还是以买火车票为例,买火车票就是进程,因为他要执行买火车票的这个程序。然后呢,一个进程可以有多个线程,但至少得有一个线程,不然就没有意义了。你可以多个人同时买火车票,但起码要有一个人买,不然没人买票跑程序干嘛呢?对于线程,一般来说有三中创建的方法。第一是继承Thre原创 2020-07-09 16:18:00 · 1091 阅读 · 0 评论