用户中心USER CENTER

首页/用户
  • AbstractQueuedSynchronizer理解之三(Semaphore)

    摘要:信号可以理解为一种许可,拿到许可的线程才可以继续执行。的计数器其实记录的就是许可的数量,当许可数量为时,方法就会阻塞。 本文接着分析Semaphore的实现原理 Semaphore是什么 Semaphore是一个计数信号量。Semaphore(信号)可以理解为一种许可,拿到许可的线程才可以继续执行。Semaphore的计数器其实记录的就是许可的数量,当许可数量为0时,acquire方法...

    马忠志 发布于Java
  • Java™ 教程(执行器)

    执行器 在前面的所有示例中,由新的线程(由其Runnable对象定义)和线程本身(由Thread对象定义)完成的任务之间存在紧密的联系,这适用于小型应用程序,但在大型应用程序中,将线程管理和创建与应用程序的其余部分分开是有意义的,封装这些函数的对象称为执行器,以下小节详细描述了执行器。 执行器接口定义三个执行器对象类型。 线程池是最常见的执行器实现类型。 Fork/Join是一个利用多个处理器的...

    马忠志 发布于Java
  • GraphQL 的入门指南

    摘要:允许创建零配置的服务器。这是一种人类可读的模式语法,称为规范与描述语言。类型是表示外观的自定义对象。为此,创建一个名为的新查询。这意味着无论何时在服务器中发生事件,并且每当调用该事件时,服务器都会将相应的数据发送到客户端。 showImg(https://segmentfault.com/img/bVbm0c1?w=2560&h=1024); 想阅读更多优质文章请猛戳GitHub博客,...

    马忠志 发布于Java
  • 【Java并发编程的艺术】第一章读书笔记

    摘要:前言并发编程的目的是让程序跑的更快,但并不是启动更多的线程,这个程序就跑的更快。尽可能降低上下文切换的次数,有助于提高并发效率。死锁并发编程中的另一挑战是死锁,会造成系统功能不可用。 前言 并发编程的目的是让程序跑的更快,但并不是启动更多的线程,这个程序就跑的更快。有以下几种挑战。 挑战及方案 上下文切换 单核CPU上执行多线程任务,通过给每个线程分配CPU时间片的方式来实现这个机制。...

    马忠志 发布于Java
  • java并发编程学习16--CompletableFuture(三)

    摘要:所以很容易出现某一个商店的数据迟迟无法返回的情况。工厂方法接受由对象构成的数组数组中所有的完成后它返回一个对象。异步的可以通过进行合并,无论他们之间是否有依赖关系。可以为注册一个回调函数,在执行完毕时使用。 【最佳价格查询器的优化 由于我们的两个远程服务:1.查询价格,2.查询折扣价格都是基于网络的。所以很容易出现某一个商店的数据迟迟无法返回的情况。由于这些原因,我希望查询器在查询时能...

    马忠志 发布于Java
<