`
xhyccc
  • 浏览: 6884 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

jWorkPool--轻量级并发WorkService容器

阅读更多
此为LighTECHs的熊昊一的最新作品...
jWorkPool HomePage
I have ever met a problem that Lucene would lock the files of index when we do writing actions, so in a multi-`thread environment, if we only apply traditional Java Asynchronized keyword for sharing this mutex resource, the effect of index writing would be lower. For that, we introduced JSR166 (JDK1.5 java.util.concurrent) Lea 1999 into our project. Indeed, personally, I capsulated this framework with Spring as my own framework jWorkPool 6 for my mates at first. As my plan, a multi-thread oriented work process is cut into several Work Services by their function and the mutex resources that them accesses, moreover each Work Service has its defined Work Pool for running. Programmers could configure the size of Work Pool to control and optimize the mutex resources' sharing. For example, we use Fixed-Single-Workpool to run the work services for Lucene index writing, only one work service can run in the pool while other submitted work services are waiting in the waiting list. I also design SessionContext, each of which contains variables of a work process among a series of services, and maintain the state of work process. In additional, each service has its "next" service which is injected into service by Spring IoC, and stands for the next service to invoke in process. An abstract class "Router" is defined as a special kind of service which could cipher out what's to do next by variables in SessionContext, and control the process. What's more, the most exciting character of jWorkPool is that Work Services and Work Pool I mentioned above need only configure in Spring Beans XML. That means Beans XML can present the work processes just like BPEL. For more information about this kit please check the homepage of project. Finally we implement the whole business logic in Work Services, and applying jWorkPool shows us a higher performance.
Semantic web tech
分享到:
评论

相关推荐

    04-大厂生产级Redis高并发分布式锁实战-ev.rar

    04-大厂生产级Redis高并发分布式锁实战_ev.rar04-大厂生产级Redis高并发分布式锁实战_ev.rar04-大厂生产级Redis高并发分布式锁实战_ev.rar04-大厂生产级Redis高并发分布式锁实战_ev.rar04-大厂生产级Redis高并发...

    Go-sdns-轻量级快速的dns递归服务器

    《Go-sdns:轻量级快速DNS递归服务器解析与应用》 在现代互联网环境中,域名系统(DNS)是至关重要的基础设施,它负责将人类可读的域名转换为机器可识别的IP地址。Go-sdns是一款用Go语言编写的轻量级、高效的DNS...

    Go-Netlog-一个轻量级HTTP-centric基于日志(Kafka风格)的消息队列

    - **轻量级设计**:Go-Netlog 设计简洁,资源消耗低,适合在资源有限的环境中部署。 - **HTTP-Centric**:基于HTTP协议,易于与各种HTTP客户端和服务器集成,支持RESTful API,简化了服务间的通信。 - **Kafka风格的...

    cpp-uWebSockets最轻量级的高效的可伸缩的WebSocket服务器实现

    《C++实现uWebSockets:轻量级高效WebSocket服务器详解》 在现代网络应用中,WebSocket协议已经成为了实时通信的重要工具,它提供了一种全双工、低延迟的通信方式,广泛应用于在线游戏、实时聊天、股票交易、物联网...

    Go-grpool-轻量级Goroutine工具

    在Go语言中,Goroutines是一种轻量级的线程实现,它们是Go并发模型的核心。Goroutines相比操作系统线程,具有更低的开销,更高效的调度,并且易于使用。Go-grpool库是一个用于管理和控制Goroutines的工具,特别适合...

    Python-gevent轻量级进程内的并发编程

    在Python中,`gevent`是一个非常流行的、基于greenlet的轻量级并发库,它使得程序员可以编写出类似同步的并发代码,而实际上在后台执行的是非阻塞式的IO操作。 **1. gevent是什么?** gevent是一个基于greenlet的...

    JAVA里使用Jetty作为轻量级嵌入式的Web容器

    Java中的Jetty是一个轻量级、高性能且可嵌入式的Web服务器和Servlet容器,它以其简单易用和高效性在开发社区中广受欢迎。本文将深入探讨Jetty的基本概念、特性以及如何在Java项目中使用它。 1. **Jetty简介** - ...

    Go-一个轻量级golang爬虫调度包

    轻量级的爬虫调度包通常只关注爬虫的核心功能,即网页的抓取、解析和调度。这种设计使得包体积小,运行效率高,同时也降低了学习和使用的难度。描述中的"ispider"包就是这样一种工具,它专注于爬虫的调度,帮助...

    Ruby-EventMachineRuby的事件驱动IO和轻量级并发库

    Ruby-EventMachine是Ruby语言中一个非常重要的库,它提供了事件驱动的I/O和轻量级并发机制。在Ruby开发中,EventMachine扮演了关键的角色,尤其是在构建高性能、高并发的网络应用时。这个库利用了非阻塞I/O和回调...

    Go-piladb—轻量级的RESTful数据库引擎基于堆栈的数据结构

    《Go-piladb:基于堆栈数据结构的轻量级RESTful数据库引擎解析》 Go-piladb是一款独特的数据库引擎,其设计思路在于提供一种轻量级、高效的解决方案,尤其适用于那些对资源有限但需要快速响应的场景。该数据库的...

    Go-Nano--轻量级便利高性能基于golang的游戏服务器框架

    《Go-Nano:轻量级、便利、高性能的Golang游戏服务器框架》 Go-Nano是一款专为游戏服务器设计的高性能框架,它充分利用了Golang语言的优势,为开发者提供了轻量级、高效且便捷的开发体验。在Golang的世界里,Go-...

    Spring轻量级与EJB重量级容器的比较

    标题:“Spring轻量级与EJB重量级容器的比较” 描述:“我自己做的第一个文档” 标签:“容器” 部分内容:本文档旨在深入探讨Spring轻量级容器与EJB重量级容器的区别,通过对这两个概念的剖析,帮助读者理解它们...

    基于 go 的轻量级并发TCP服务器框架项目源码.zip(教程+源代码+附上详细代码说明)

    基于 go 的轻量级并发TCP服务器框架项目源码.zip(教程+源代码+附上详细代码说明)。一款高含金量的go项目 ①:基于Golang的轻量级并发服务器框架 ②:通过项目框架来了解基于Golang编写一个TCP服务器的整体轮廓,让...

    Zinx 是一个基于Golang的轻量级并发服务器框架

    **Zinx:基于Golang的轻量级并发服务器框架** Zinx是一个专为Go语言设计的轻量级并发服务器框架,旨在提供高效、简洁的网络服务开发能力。它充分利用了Go语言的并发特性,如goroutines和channels,使得开发者能够...

    VX-API-Gateway是基于Vert.x(java)开发的API网关,是一个全异步,高性能,可扩展,轻量级的API网关

    VX-API-Gateway是一款基于Java语言的Vert.x框架构建的API网关,它以其全异步、高性能、可扩展和轻量级的特性在Web应用开发领域中脱颖而出。这款API网关扮演着至关重要的角色,它作为系统对外的统一入口,负责对内部...

    Go-GoCat--基于Go的高并发Web容器

    GoCat是一款基于Go语言开发的高并发Web容器,它的设计目标是提供高性能、轻量级且易于扩展的服务器环境,适用于构建现代Web应用程序。Go语言以其并发模型、内存安全和高效的编译速度,在开发高性能网络服务领域备受...

    Hibatis轻量级高并发分布式数据库框架

    Hibatis是一个在Java开发中广泛使用的轻量级、高并发和分布式数据库访问框架,它融合了Ibatis和JPA(Java Persistence API)的优点,旨在提供高效且灵活的数据持久化解决方案。作为ORM(Object-Relational Mapping)...

    UNIX线程和轻量级进程

    线程和轻量级进程的引入极大地提升了UNIX系统中并发编程的能力,不仅解决了传统进程模型的局限性,还极大地促进了高性能计算领域的发展。然而,这些机制也带来了一定的挑战,例如线程同步问题、资源管理复杂性等。...

    基于 Go 的轻量级并发TCP服务器框架毕业设计源码.zip

    在本项目中,我们关注的是一个基于Go语言实现的轻量级并发TCP服务器框架,用于毕业设计。Go语言,也被称为Golang,是由Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。它设计的目标是提高...

Global site tag (gtag.js) - Google Analytics