
多线程编程
文章平均质量分 77
SpringBoot+多线程
w_t_y_y
个人在线笔记~,其他博客:https://www.zhihu.com/people/wtyy666
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程池(三)ThreadPoolTaskExecutor(2)两种提交方法
前面提到了线程池提交任务有两种方法:无返回值的任务使用public void execute(Runnable command) 方法提交;有返回值的任务使用public <T> Future<T> submit(Callable) 方法提交。下面具体来看下两者的应用以及区别。一、与主线程执行顺序的区别:1、(1)public void execut...原创 2019-10-30 13:56:48 · 19946 阅读 · 6 评论 -
线程池(三)ThreadPoolTaskExecutor类(1)介绍与集成
应用举例:假设有三个耗时任务,一个返回结果,一个不返回结果,一个不返回结果且批量执行1、ThreadPoolTaskExecutorConfig:将ThreadPoolTaskExecutor做为一个bean,通过spring的注入,保证只会初始化一次。package exceldemo.config;import org.springframework.context.an...原创 2019-10-25 09:59:26 · 4661 阅读 · 1 评论 -
线程池(二)ThreadPoolExecutor(2)集成demo
一、ThreadFactory自定义线程创建1、自定义ThreadFactory线程池中线程就是通过ThreadPoolExecutor中的ThreadFactory,线程工厂创建的。自定义ThreadFactory,可以按需要对线程池中创建的线程进行一些特殊的设置,如命名、优先级等,如:package exceldemo;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import ja原创 2024-02-27 14:57:03 · 1010 阅读 · 0 评论 -
线程池(二)ThreadPoolExecutor(1)综述
java.util.concurrent.ThreadPoolExecutor是用来处理异步任务的一个接口,可以将其理解成为一个线程池和一个任务队列,提交到 ExecutorService 对象的任务会被放入任务队或者直接被线程池中的线程执行。继承关系:public interface Executor public interface ExecutorService ...原创 2019-10-24 11:36:28 · 658 阅读 · 1 评论 -
线程池(一)----介绍
线程池简介:在Java中,我们一般通过集成Thread类和实现Runnnable接口,调用线程的start()方法实现线程的启动。但如果并发的数量很多,而且每个线程都是执行很短的时间便结束了,那样频繁的创建线程和销毁进程会大大的降低系统运行的效率。线程池正是为了解决多线程效率低的问题而产生的,他使得线程可以被复用,就是线程执行结束后不被销毁,而是可以继续执行其他任务。(这里可以用tomcat做...原创 2019-07-30 14:34:09 · 317 阅读 · 1 评论 -
java中的多线程(二)java中的并发工具类
一、等待多线程完成的CountDownLatch二、同步屏障CyclicBarrier三、控制并发编程数的Semaphore四、线程间交换数据的Exchanger原创 2024-02-06 11:11:03 · 148 阅读 · 0 评论 -
java中的多线程(一)介绍与创建方法
(1)继承Thread类。(2)实现Runnable接口。本质上实现方式都是来实现线程任务,然后启动线程执行线程任务。原创 2024-02-02 16:11:29 · 292 阅读 · 0 评论 -
锁(三)锁的分类
一锁的种类:原创 2020-04-14 10:40:14 · 2560 阅读 · 1 评论 -
锁(二)队列同步器AQS
用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。是实现锁的关键。原创 2024-02-06 09:51:14 · 939 阅读 · 0 评论 -
锁(一)java中的锁相关
线程原创 2017-07-22 09:27:58 · 484 阅读 · 1 评论 -
java中的线程安全问题(五)线程变量ThreadLocal
ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象在不同的 Thread 中有不同的副本,这就不存在多线程间共享的问题。原创 2024-02-19 09:53:03 · 896 阅读 · 0 评论 -
java中的线程安全问题(四)java中的13个操作原子类
Atomic包一共提供了13个类。原创 2024-02-06 11:07:57 · 225 阅读 · 0 评论 -
java中的线程安全问题(三)并发框架Fork / Join
Fork / Join框架。原创 2024-02-26 10:35:39 · 314 阅读 · 0 评论 -
java中的线程安全问题(二)容器(2)并发容器
jdk7提供了7个阻塞队列。原创 2024-02-06 11:05:46 · 276 阅读 · 0 评论 -
java中的线程安全问题(二)容器(1)同步容器
Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map,原创 2024-02-26 10:34:04 · 440 阅读 · 0 评论 -
java中线程安全问题(一)介绍
指在并发的情况之下,该代码经过多线程使用,线程的调度顺序不影响任何结果。这个时候使用多线程,我们只需要关注系统的内存、cpu是不是够用即可。原创 2024-02-26 10:31:21 · 650 阅读 · 0 评论 -
多线程通信(二)线程阻塞与多线程计数器
一、介绍:1、java为顺序执行代码,如package com.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController { @RequestMapping("/test"原创 2021-10-20 11:49:41 · 1200 阅读 · 0 评论 -
多线程通信(一)
一个线程修改一个对象的值,另一个线程感知变化。线程A调用对象O的wait()进入等待状态,另一个线程B调用对象O的notify()或者 notifuAll()方法,线程A 收到通知后从对象O 的wait()方法返回,执行后续操作。两个线程通过对象O来完成交互,而对象上的wait()和notify/notifyAll()的关系就如同开关信号一样,用来完成等待方和通知方之间的交互工作。原创 2024-02-05 14:20:30 · 282 阅读 · 0 评论 -
多线程生命周期(2)常用方法
.一些关于影响线程生命周期的方法:原创 2020-03-11 16:04:07 · 64 阅读 · 0 评论 -
多线程生命周期(1)相关介绍
Daemon线程是一种支持型线程,因为它主要被用作程序中后台调度以及支持性工作。当一个Java虚拟机中不存在非Daemon线程的时候,Java虚拟机将会退出。一个标识位属性。原创 2024-02-05 10:48:34 · 1098 阅读 · 0 评论 -
多线程原理(3)java内存模型
java内存模型在并发 编程中的应用。原创 2024-02-04 16:57:44 · 489 阅读 · 0 评论 -
多线程原理(2)volatile、synchronized和原子操作
一、volatile二、synchronized三、原子操作原创 2024-02-04 15:46:03 · 230 阅读 · 0 评论 -
多线程原理(1)上下文切换
就像我们同时在读两本书,比如当我们在读一本英文的技术书时,发现某个单词不认识,于是便打开中英文字典,但是在放下英文技术书之前,大脑必需首先记住这本书读到了多少页的第多少行,等查完单词之后,能够继续读这本书,这样的切换是会影响读书效率的,同样上下文切换也会影响到多线程的执行速度。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下个任务,但是在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务的保存到再加载的过程就是。原创 2024-02-04 12:07:21 · 331 阅读 · 0 评论