![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 72
大林子先森
资深写BUG选手
展开
-
线程上下文切换
线程上下文切换原创 2022-08-25 11:42:06 · 3618 阅读 · 0 评论 -
浅析Java线程
Java线程模型并发不一定要依赖多线程(如PHP中很常见的多进程并发),但是在Java里面谈论并发,大多数都与线程脱不开关系。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。主流的操作系统都提供了线程实现,Java语言则提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个已经执行start()且还未结束的java.lang.Thread类的实例就代表了转载 2022-02-15 08:12:39 · 133 阅读 · 0 评论 -
统一任务分发调度执行框架
项目中需要对多个基站进行管理,根据任务的执行时间情况,决定将耗时的任务统一改为异步调用,同时由于基站任务执行的特殊性,还需要针对需要到达基站的任务进行串行编排,保证一个基站同一时刻只有一个任务在执行,对于异步任务的提交、执行情况通过WebSocket消息机制及时通知前端用户。同时为了保证用户体验,针对不耗时的任务依旧采用同步方式调用。原创 2022-02-14 13:54:04 · 2254 阅读 · 1 评论 -
多线程09--使用wait和notify模拟阻塞队列
什么是阻塞队列?阻塞队列常常实现了如下两个功能:1)当队列为空时,获取元素的线程会阻塞等待直到队列有数据;2)当队列满时,想要存储元素的线程会阻塞等待直到队列有空间。下面通过使用wait和notify实现如上两个功能效果,直接上代码:package com.ldzn.concurrency.blockingqueue;import java.util.LinkedList;import java.util.concurrent.TimeUnit;import java.u.原创 2021-08-24 21:30:52 · 203 阅读 · 0 评论 -
多线程08--管程
管程(英语:Monitors,也称为监视器) :是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。这些共享资源一般是硬件或一群变量。管程实现了在一个时间点,最多只有一个线程在执行管程的某个子程序。与那些通过修改数据结构实现互斥访问的并发程序设计相比,管程实现很大程度上简化了程序设计。管程提供了一种机制,线程可以临时放弃互斥访问,等待某些条件得到满足后,重新获得执行权恢复它的互斥访问。组成元素::多个彼此可以交互并共享资源的线程 多个与资源使用有关的变量 一个..原创 2021-04-02 13:12:55 · 268 阅读 · 1 评论 -
多线程07--yield和join
线程yield 、join的使用原创 2021-03-23 14:13:42 · 1256 阅读 · 0 评论 -
多线程06--函数式接口与Lambda表达式
引言学习Lamda表达式就有必要学习下函数式接口,所以本文分两大部分:函数式接口、Lambda表达式,循序渐进完成从函数式接口到Lambda表达式的推导式学习。1.函数式接口1.1定义"函数式接口"是JAVA8 新特性,一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口,使用@FunctionalInterface注解,如果注释@FunctionalInterface在非函数式接口或其他类型(如类)上注释,则会发生编译时错误。具有一个抽象方法的接口仍然是一个功能接口,即使我们不用@.原创 2021-03-21 22:01:23 · 256 阅读 · 0 评论 -
多线程04--Runnable && Thread.start()底层剖析
1.Runnable与静态代理的联系前面《多线程03--静态代理模式》,我们通过一个简单的例子,然后外加配图,相信已经能够比较清楚的理解静态代理模式是个什么玩意儿,以及如何实现它。那么回到通过实现Runnable创建线程这个事儿上来,我们再列下整个实现步骤: 新建线程类MRunnableThread,继承Runnable接口,在其中实现run()方法完成具体的业务操作动作 new一个MRunnableThread的实例mRunnable,调用new Thread(mRunnable).原创 2021-03-20 12:24:31 · 777 阅读 · 1 评论 -
多线程05--线程状态
线程状态原创 2021-03-20 00:27:44 · 169 阅读 · 0 评论 -
多线程03--静态代理模式
1.引言在学习多线程的过程中,有必要学习下静态代理模式,为啥呢?在《多线程01--线程》中,我们提到创建线程的几种方式,其中之一就是实现Runnable接口,这时其实就使用到了我们的静态代理模式。当然现实生活中,也有很多存在代理的场景例如房产中介、海淘代购等等,都扮演着代理者的角色。2.实现静态代理的实现一般可分为如下几个环节:存在或定义一个主题接口Subject(包含一个业务方法:如卖房子); 创建代理类,实现主题接口Subject; 创建真实对象,继承主题接口Subject,实现业原创 2021-03-20 00:14:26 · 264 阅读 · 0 评论 -
多线程02--Callable接口使用
实现Callable接口package callable;import java.util.concurrent.Callable;public class CallableDemo01 implements Callable<String> { @Override public String call() throws Exception { //模拟耗时任务 Thread.sleep(2000); return T.原创 2021-03-19 07:59:01 · 84 阅读 · 0 评论 -
多线程01--线程
1. 概念 先来看看如下几个概念:程序:静态概念,一般为操作系统中的一个可执行程序,例如我们写的一段可编译运行的Java代码(Hello world),我们称之为程序 进程:动态概念,执行中的程序,例如我们执行上面的那段Java代码,系统会产生一个javaw.exe的进程(JVM虚拟机),main作为主线程,同时还默认存在一个GC线程负责垃圾回收。 线程:进程内部的一个执行单元,一个进程内的多个线程共享进程资源。 多核CPU:一枚处理器中集成两个或多个完整的计算引擎(内核)。 并发:当..原创 2021-03-17 21:29:26 · 89 阅读 · 0 评论