8.6-chinese
发表于|更新于|C++
|总字数:271|阅读时长:1分钟|浏览量:
8.6 本章总结
本章我们讨论了很多东西。我们从划分线程间的工作开始(比如,数据提前划分或让线程形成流水线)。之后,以低层次视角来看多线程下的性能问题,顺带了解了伪共享和数据通讯;了解访问数据的模式对性能的影响。再后,了解了附加注意事项是如何影响并发代码设计的,比如:异常安全和可扩展性。最后,用一些并行算法实现来结束了本章,在设计这些并行算法实现时碰到的问题,在设计其他并行代码的时候也会遇到。
本章中,关于线程池的部分被转移了。线程池——一个预先设定的线程组,会将任务指定给池中的线程。很多不错的想法可以用来设计一个不过的线程池;所以我们将在下一章中来看一些有关线程池的问题,以及高级线程管理方式。
文章作者: Estom
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Estom的博客!
相关推荐

2022-11-27
总结文档
总结文档 总结文档 普通集合 并发集合 字节流与字符流 static、final、super、this 关键字(this、super 不能用在 static 方法中)以及泛型 异常体系 ava 的 IO java 对象如何判断是否可以回收(注意,此处仅仅为判断对象是否可达,不一定判断对象是否可以回收) java 中的 SPI Java 虚拟机 Java 锁机制 java 多线程 Spring Mybatis Apache HttpClient 普通集合 Arrays.asList()返回的是视图(ArrayList 内部类对象,只提供了替换数据的方法,其底层依旧是原数组数据) subList:返回的 List 是 ArrayList 中某段数据的一个视图,不可在使用时对原对 象进行操作,否则会出现 CME 异常 HashMap 对于容量的初始化分配,在首次 put 操作时执行(lazy load)ii. 并发下出现的死链问题:https://www.jianshu.com/p/619a8efcf589、https://juejin.im/post/5a255bbd6fb...

2022-12-05
05.synchronized和ReentrantLock
synchronized 和 ReentrantLock 的实现原理是什么?它们有什么区别?在 JDK 1.5 之前共享对象的协调机制只有 synchronized 和 volatile,在 JDK 1.5 中增加了新的机制 ReentrantLock,该机制的诞生并不是为了替代 synchronized,而是在 synchronized 不适用的情况下,提供一种可以选择的高级功能。 典型回答synchronized 属于独占式悲观锁,是通过 JVM 隐式实现的,synchronized 只允许同一时刻只有一个线程操作资源。 在 Java 中每个对象都隐式包含一个 monitor(监视器)对象,加锁的过程其实就是竞争 monitor 的过程,当线程进入字节码 monitorenter 指令之后,线程将持有 monitor 对象,执行 monitorexit 时释放 monitor 对象,当其他线程没有拿到 monitor 对象时,则需要阻塞等待获取该对象。 ReentrantLock 是 Lock 的默认实现方式之一,它是基于 AQS(Abstract Queued Sync...

2022-12-05
27.单例的实现方式有几种?它们有什么优缺点?
单例的实现方式有几种?它们有什么优缺点?单例模式是 Java 中最简单的设计模式之一,它是指一个类在运行期间始终只有一个实例,我们就把它称之为单例模式。它不但被应用在实际的工作中,而且还是面试中最常考的题目之一。通过单例模式我们可以知道此人的编程风格,以及对于基础知识的掌握是否牢固。 我们本课时的面试题是,单例的实现方式有几种?它们有什么优缺点? 典型回答单例的实现分为饿汉模式和懒汉模式。 饿汉模式顾名思义,饿汉模式就好比他是一个饿汉,而且有一定的危机意识,他会提前把食物囤积好,以备饿了之后直接能吃到食物。对应到程序中指的是,在类加载时就会进行单例的初始化,以后访问时直接使用单例对象即可。 饿汉模式的实现代码如下: 12345678910111213141516171819202122public class Singleton { // 声明私有对象 private static Singleton instance = new Singleton(); // 获取实例(单例对象) public static Singleton get...

2023-10-29
14 Servlet容器
Servlet容器、Http服务器:Servlet、Tomcat、SpringMVC的关系 参考文章https://blog.csdn.net/cristianoxm/article/details/121268913 1. Servlet概念 servlet就是一个接口;接口就是规定了一些规范,使得一些具有某些共性的类都能实现这个接口,从而都遵循某些规范。有的人往往以为就是servlet直接处理客户端的http请求,其实并不是这样,servlet并不会去监听8080端口;直接与客户端打交道是“容器”,比如常用的tomcat。客户端的请求直接打到tomcat,它监听端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。 简而言之,就是说S...

2022-11-01
1 概述
概述 一篇就够了: https://zhuanlan.zhihu.com/p/306591082 1 概述什么是QuartzQuartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。简单地创建一个org.quarz.Job接口的Java类,Job接口包含唯一的方法: 1public void execute(JobExecutionContext context) throws JobExecutionException; 在Job接口实现类里面,添加需要的逻辑到execute()方法中。配置好Job实现类并设定好调度时间表,Quartz就会自动在设定的时间调度作业执行execute()。 整合了Quartz的应用程序可以重用不同事件的作业,还可以为一个事件组合多个作业。Quartz通过属性文件来配置JDBC事务的数据源、全局作业、触发器侦听器、插件、线程池等等。 核心概念 Job 表示一个工作,要执行的具...

2022-11-27
06 WebFlux03Server
1 WebFlux基于注解的编程的实现创建WebFlux项目 创建Springboot项目,引入webflux的依赖 12345678910111213141516171819202122232425262728293031323334353637383940414243pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelV...
公告
欢迎参观Estom的小屋




