Multithreading

Considerations

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

THREAD(*SERIALIZE)

will

protect

 

most

 

of your variables and all your intern

control

 

structures from being accessed improperly

by

multiple

threads.

safe module will be locked when

 

a

procedure

in

the

module is

entere

unlocked

when no procedure in the

module

 

is

still

running.

This

serializ

ensures

that

only

one

thread

is

active

in

any one

module,

within

an

a

group,

 

at any one time. However,

it

is

still

up

to

 

the

programmer

to

safety

for storage that is shared

across

modules.

 

This

 

is

done

by

the application to synchronize access to the storage. For example, sha

exported

and

imported

storage,

and storage accessed by the addres

eter

may

be

shared

across

modules

 

from

multiple

threads.

To

synchroni

to

 

this type

of

storage,

you

can

do

one

or

both

 

of

the

following:

¹

Structure the application such that the shared resources are not a

 

 

simultaneously

from

multiple

 

threads.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¹

If

you are going to access resources simultaneously from separate

 

 

synchronize access using facilities such as semaphores or mutexes.

 

 

information, refer to the Multithreaded Applications document

 

under

th

 

 

gramming topic at the following URL:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.as400.ibm.com/infocenter/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

How to

Share Data

 

Across

More

 

Than

 

One

Module

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Serializing access to modules using the THREAD(*SERIALIZE) control

 

specific

keyword

ensures sequential access

to

global

data

within

each

 

module,

not ensure sequential access to

shared data across modules. It is

grammer

 

to ensure that only one

thread can access shared data

at

o

Two

or

 

more

modules

can

access

the

 

same

data

if:

 

 

 

 

 

 

 

 

¹

EXPORT/IMPORT

keywords

are

used

on

 

the

 

definition

specifications

 

 

¹

Files

 

are shared

across

modules

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¹

Data

 

is based on a pointer

where

the

pointer

is

available

to

more

 

 

module

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

For

example,

procedure

A

in

 

module

A

passes

a

pointer to

procedure

B

B,

 

and

procedure

B

saves

the

pointer

in

a

static

 

variable.

 

Now

both

access

to

the

based

storage

at the same time as the thread runnin

accessing the storage. Once procedure B returns, another thread coul

cedure

in module B and access

the based storage. Serialization of

storage

within modules A and B

would not prevent simultaneous access

of

same storage in each module. The following is an

example

of

two

module

access

the

same

data.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

158 ILE RPG for AS/400 Programmer's Guide

Page 182
Image 182
IBM AS/400 manual How to, Across, Share Data

AS/400 specifications

The IBM AS/400, now known as the IBM iSeries, is a midrange computer system that has been a cornerstone of enterprise computing since its introduction in 1988. Designed to provide a robust platform for business applications, the AS/400 is celebrated for its reliability, scalability, and integrated database capabilities.

One of the key features of the AS/400 is its Integrated Operating Environment, which blends hardware and software resources seamlessly. This integration allows businesses to execute diverse workloads, ranging from traditional applications to modern web-based services, all on a single platform. The operating system, OS/400 (now IBM i), offers a rich set of APIs and tools for developers, simplifying application development and management.

Another standout characteristic of the AS/400 is its built-in database, DB2 for i. This powerful relational database management system allows for efficient data handling and provides advanced features such as support for SQL, XML, and JSON, making it easier for businesses to manage their data and integrate it with other systems. The database's tight integration with the operating system enables high performance and security.

In terms of scalability, the AS/400 can accommodate small businesses as well as large enterprises, with the ability to support hundreds of users simultaneously. Its architecture allows for easy upgrades in hardware, meaning that organizations can scale their systems without replacing the entire infrastructure.

Security is another critical attribute of the AS/400. With a sophisticated security model, it offers built-in user authentication, access control, encryption, and auditing capabilities to protect data and applications from unauthorized access.

The AS/400 also supports multiple programming languages, including RPG, COBOL, Java, and PHP, giving organizations the flexibility to choose the development tools that best fit their needs. This diversity helps maintain legacy applications while also developing new ones that leverage modern technologies.

Moreover, the platform supports both traditional green-screen interfaces and modern graphical user interfaces, allowing organizations to transition smoothly into contemporary user experience paradigms.

Overall, the IBM AS/400 stands out as a resilient, flexible, and secure computing platform that enables organizations to effectively manage their business operations, streamline processes, and adapt to changing market demands. Its unique combination of integrated features and capabilities ensures that it remains relevant in today's fast-paced technology landscape.