随笔分类 - java并发多线程
摘要:前言 对于如何更合适的使用线程池,根据系统业务是CPU密集型 还是IO密集型。 cpu密集型: cpu使用率较高(也就是一些复杂运算,逻辑处理),所以线程数一般只需要cpu核数的线程就可以了。 这一类型的在开发中多出现的一些业务复杂计算和逻辑处理过程中。 I/O密集型: cpu使用率较低,程序中会存
阅读全文
摘要:前言 为了对线程的统一管理分配,引入了线程池。我们来看看它的源码吧! 接口、类的关系 我们来看看Executor、ExecutorService、AbstractExecutorService Executor接口 Executor接口只有一个方法execute,传入线程任务参数 ExecutorS
阅读全文
摘要:线程池的继承架构 程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池。 线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用。 在JDK5之
阅读全文
摘要:前言 java中的线程池是运行场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。 合理使用线程池能够带来3个好处。 第一:降低资源消耗。 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:
阅读全文
摘要:前言 线程组,顾名思义,就是线程的组,逻辑类似项目组,用于管理项目成员,线程组就是用来管理线程。 每个线程都会有一个线程组,如果没有设置将会有些默认的初始化设置 而在java中线程组则是使用类ThreadGroup 进行抽象描述 构造器 private ThreadGroup() { this.na
阅读全文
摘要:前言 Java.lang.Thread是Java应用程序员对Java多线程的第一站,Thread就是对Java线程本身的抽象 所以在Java中的线程编程概念中,一个Thread实例 == 一个线程 线程有哪些属性、行为,Thread大致就有哪些属性、行为。 源码 构造器 public Thread(
阅读全文
摘要:前言 java语言内置对多线程的支持。那为什么使用多线程的?首先线程是操作系统最小的调度单元,多核心,多个线程可以同时执行,能够提升程序性能。但过多的线程也会导致问题(效率下降,死锁)。 一、线程简介 1.1 什么是线程 进程:现代操作系统运行一个程序时,会为其创建一个进程。(进程可认为是运行的程序
阅读全文
摘要:前言 本章大致分为四部分。 java内存模型的基础,介绍内存模型的相关基本概念; java内存模型中的顺序一致性,主要介绍重排序和顺序一致性; 同步原语,涉及synchronized,volatile,final三个同步原语的内存含义及重排序等; java内存模型的设计,涉及与内存模型和顺序一致性内
阅读全文
摘要:前言 Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。 一、volatile的应用 在多线程并发编程中synchronized和volatile都扮演着重要的
阅读全文
摘要:前言 并发编程的目的是为了让程序运行的更快,但是并不是启动更多的线程就能让程序最大限度地并发执行。进行并发编程时,会面临很多挑战,如上下文切换、死锁、受限于硬件和软件的资源限制问题等。 上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CP
阅读全文
摘要:简介 线程的控制就是程序对线程的主要管理,最重要的就是状态的切换维护。 每种转态都有不同的引发事件(对应线程的方法),每种状态又有各自不同的处理步骤和过程,整个线程控制主要就是涉及这些内容。 正文 线程等待与唤醒 所涉及到的方法:wait()、notify()、notifyAll()。 详细信息如下
阅读全文
摘要:学习之前,先了解线程状态图 说明:线程共包括以下5种状态。 1. 新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。 2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的sta
阅读全文
摘要:简介 简言之,现在的JDK线程模型基于操作系统原生线程,所以模型依赖于操作系统对线程的支持,另外Windows和Linux系统提供的线程模型就是一对一的 所以可以简单认为: 现在Java线程与操作系统线程一对一映射 现在的Java线程,就是操作系统中的线程 一些都是Thread:Thread是Jav
阅读全文
摘要:进程通信指的是进程间的信息交换 ,IPC(Inter-Process Communication,进程间通信) 进程通信就相当于一种工作方式、沟通形式,进程通信主要指的就是操作系统提供的进程通信工具(“封装好的方法”)用来进程间的信息交换。 IPC的方式通常有管道(包括无名管道和命名管道(FIFO)
阅读全文
摘要:一、进程的控制 进程的基本数据信息是操作系统控制管理进程的数据集合,这些信息就是用来控制进程的,此处我们说的进程控制就是进程的管理。 比如进程有状态,那么进程的创建、终止,状态的切换,这都不是进程自主进行的,都是通过操作系统进行管理的。 如下图所示,所有的相关数据都是操作系统用来管理维护进程的 操作
阅读全文
摘要:操作系统与程序运行以及进程简介 一、线程与操作系统 操作系统是对计算机硬件资源的管理程序,是应用程序与计算机硬件交互的中间层,其本质仍旧是运行于硬件电路上的程序 对计算机硬件来说不存在操作系统,只是处理器对指令的执行,不过操作系统是一个特殊一点的程序。 所以不管你用了多少技术,框架,模式,实现了怎么
阅读全文

浙公网安备 33010602011771号