Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
多线程编程指南
读写锁(Reader Writer Lock)
目的假设我们有一个共享内存区域,上面详细介绍了基本约束。可以保护互斥锁后面的共享数据,在这种情况下,没有两个线程可以同时访问数据。但是,此解决方案不是最理想的,因为读取器R1可能具有锁定,然后另一个读取器R2请求
KeyDB:Redis的多线程版本
Redis是单线程的,而KeyDB是Redis的高性能分支版本,专注于多线程,内存效率和高吞吐量。除了多线程之外,KeyDB还具有仅在Redis Enterprise中可用的功能,例如FLASH存储支持,以及一些根本不可用的功能,例如直接备份到AWS S3。在相同的硬件上,KeyDB
为什么我们需要volatile关键字?
volatile字段以确保多个线程始终看到最新值,即使缓存系统或编译器优化正在起作用。从volatile变量读取始终返回此变量的最新写入值。java.uti.concurrent包中的大多数类的方法也具有此属性。通常在内部使用volatile字段。
Netflix微调Tomcat的经验分享
Netflix公司有许多高吞吐量,低延迟中间层服务。在这些服务中会发现:如果在很短的时间遭遇巨大的流量激增,服务器的CPU会变得反应迟钝。 这会导致不愉快的用户体验。 这里有一个读操作和连接超时的问题,如果读超时被设置得很高,运行时读操作超时情况反而很糟糕
comsat是用于Web开发的Java纤程Fiber和Actor模型
Comsat是使用Quasar作为其纤程Fiber(类似Go语言的绿色线程)实现的Actor模型,能够为Java的Web开发提供高性能异步并发功能。 它的特点是:1.高并发 – 每个请求一个纤程fiber2.不是一个框架,而是标准API实现
反应式编程是正确的方法吗? - JAXenter
反应式编程承诺具有较低内存要求的企业Java应用程序的更高性能。通过避免阻塞始终导致操作系统中的进程和上下文切换的调用来实现此承诺。这种上下文切换具有高CPU和存储器开销,当然,这些开关减少了更少。然而,这种反应式编程的性能提升是以软件可维护性较差为代价的。但更高的性能是否物有所值?有哪些替
如何避免死锁和活锁? - simar
死锁只能在并发(多线程)程序中发生,其中同步(使用锁)线程访问一个或多个共享资源(变量和对象)或指令集(临界区)。活锁时当我们试图避免死锁时会使用异步锁定时发生的,其中多个线程对同一组锁的竞争写操作,为了避免获取锁定,允许其他线程第一个到达的获得锁,等待最终释放锁定后再继续,这容易造
线程池模式(Thread Pool Pattern)
目的通常情况下,要执行的任务是短期的,并且任务数量很大。为每个任务创建一个新线程会使系统花费更多时间来创建和销毁线程,而不是执行实际任务。线程池通过重用现有线程并消除创建新线程的延迟来解决此问题。
保护性暂挂模式(Guarded Suspension Pattern)
目的如果要对未处于正确状态的对象执行方法,请使用Guarded Suspension Pattern来处理某种情况。 维基百科说在并发编程中,gua
利用Lambda表达式进行Java中的惰性求值
在java中,懒性求值也称懒计算lazy evaluation功能可能被忽视了(实际上,在语言层面,它几乎仅限于最小求值的实现) - 例如Scala等高级语言区分了按值调用和按名称调用,或引入像lazy这样的专用关键字。 虽然Java 8通过提供Lazy
异步编程:协作性多任务处理
如何确保同时处理多个请求,我们可以使用线程或进程进行多任务处理实现,但还有一个选择 - 协作性多任务处理。这个选项是最困难的。在这里我们说操作系统当然很酷,它有调度程序/计划程序,它可以处理进程,线程,组织它们之间的切换,处理锁等,但它仍然不知道应用程序是如何工作的,而这些工作原理应
在Java中本地进行线程间数据传输的三种方式和源码展示
在线程之间进行通信或发信号时首先想到的是java.lang.Object类方法:wait,notify和notifyAll。这是最基本和最广泛认可的概念,但本博客并非讲这些。JVM实例上运行的线程缺少强大的预设模型,就像在UNIX中进行交互通信一样,尽管有一些第三方框架可以帮助我们实
Node.js中线程的完整指南 – LogRocket
很多人想知道单线程Node.js如何与多线程后端竞争。因此,考虑到其所谓的单线程特性,许多大公司选择Node作为其后端似乎违反直觉。 当我们说Node是单线程时,我们必须理解我
每个锁创建多个条件队列以避免虚假唤醒
多个条件队列以实现更好的并发性。每个锁使用单独的条件队列的优点。 它避免了虚假的唤醒和上下文切换。例如,如果您使用notifyAll进行传统等待,则最终会唤醒正在等待不同条件的线程。 当您在单独的条件队列上等待时,您可以使用signal 而不是signalAll来进一
ThreadLocal模式
目的将全局变量固定到线程,以防被其他线程破坏。如果在可调用对象或可运行对象中使用非只读的类变量或静态变量,则需要这样做。通过应用本地线程模式Thread Local Pattern
性能三倍于JDK标准线程池Executor服务
vmlens是一个高吞吐量的Java线程池执行器服务,根据其自己测试,性能快于JDK标准线程池服务三倍。 JDK提供两种线程池服务,普通的Executor服务和Fork/Join线程池,后者性能高于前者,但是其实质是一种递归方式,也就是可以将你任务进行递归
JVM中的线程行为 -JavaWorld
线程化是指同时执行编程过程以提高应用程序性能的实践。虽然直接在业务应用程序中使用线程并不常见,但它们一直在Java框架中使用。例如,处理大量信息的框架(如
Java多线程傻瓜入门介绍
现代计算机能够同时执行多个操作。在硬件改进和更智能的操作系统的支持下,多个操作的功能使您的程序在执行速度和响应速度方面运行得更快。编写利用这种功能的软件既迷人又棘手:它要求您了解计算机引擎盖下发生的情况。 进程和线程:以正确
上页
下页
关闭