Executable Container Objects for Concurrent Thread Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel computer applications, the concurrent execution of threads can lead to data inconsistencies due to simultaneous reading and writing operations, requiring developers to manage complex dependencies and synchronization, which complicates the development and execution of parallel applications.

Innovation Solution

A method and system that utilize executable container objects and threads to process instructions concurrently, with a library providing classes for creating and managing executable objects and containers, enabling concurrent execution while managing dependencies and synchronization through conditional and non-conditional executable objects and containers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads execute an application in parallel, then processing speed is improved, but data consistency deteriorates due to simultaneous read and write operations

Engineering Contradiction:
Improveprocessing speedVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces executable container objects as intermediaries between threads and executable objects. These container objects manage the concurrent access to executable objects, coordinating read and write operations to prevent data inconsistencies while allowing parallel execution to proceed.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where executable container objects monitor and coordinate access patterns of multiple threads. The container objects receive information about thread operations and adjust access control accordingly, ensuring data consistency is maintained through continuous coordination of concurrent operations.

Inventive Principle:
Principle #23Feedback

2Reliability

If developers manually manage thread dependencies and synchronization, then data consistency is maintained, but development complexity increases

Engineering Contradiction:
Improvedata consistencyVSAvoiddevelopment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The executable container objects provide self-service functionality by automatically managing the coordination and synchronization of multiple threads accessing executable objects. The system performs dependency management and conflict resolution autonomously without requiring explicit developer intervention, thereby maintaining data consistency while reducing development complexity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent segments the complexity of thread management by separating concerns into distinct components: executable objects contain the actual work, while executable container objects handle the coordination and synchronization logic. This segmentation allows developers to focus on business logic while the container objects manage the complex threading aspects.

Inventive Principle:
Principle #1Segmentation

3Productivity

If threads access shared data concurrently without coordination, then processing efficiency is improved, but data reliability deteriorates

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Executable container objects serve as intermediary layers between concurrently executing threads and shared executable objects. These containers coordinate access patterns, allowing multiple threads to efficiently process data while preventing conflicting read and write operations that would compromise data reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8312467B2Method and system for concurrently executing an application
Publication Date: 2012.11.13 ORACLE AMERICAN INC
  • US8312467B2 patent drawing
  • US8312467B2 patent drawing
  • US8312467B2 patent drawing

AI summary

A method for executing an application, that includes instantiating, by a first thread, a first executable object and a second executable object, creating a first processing unit and a second processing unit, instantiating an executable container object, spawning a second thread, associating the first executable object and the second executable object with the executable container object, processing the executable container object to generate a result, and storing the result. Processing the executable container object includes associating the first executable object with the first processing unit, and associating the second executable object with the second processing unit, wherein the first thread processes executable objects associated with the first processing unit, wherein the second thread processes executable objects associated with the second processing unit, and wherein the first thread and the second thread execute concurrently.