[JSR] [JEP] Java Specification Requirement / Java Enhancement Proposal : 'Parallel OR' and 'Parallel AND'

Prakhar Makhija matcdac at gmail.com
Wed Jul 24 12:19:00 UTC 2019


Hi David / All,


Earlier wanted to discuss just the implementation of 'OR operator', neither
'Conditional OR operator', nor 'Bitwise OR operator'

Same goes with 'AND operator'

Technically OR operator and AND operator are just binary operators, that's
true

I don't find it wrong considering there can be n operands, in an
expression, with either of the two operators or a combination of both,
where n >= 2

n can go nearby anything in powers of 10, it will take those many
sequential clock cycles, to actually resolve the expression

If you consider the same n as an expression of powers of 2, the same thing
can be done in parallel clubbed with divide and conquer, taking the same
number of clock cycles, but saving actual response time

This can be given as a input from console, or as a property, specifying
which implementation to use at runtime, sequential or parallel

But with the latter would lead to very frequent resource starvage, this
would need to be handled, to actually free the resources and give to pid or
ppid, heirarically, or based upon who is the callee, or who asked who to
wait, or some more other logic

All the threads parallelly evaluating the same expression, with either
operand, should be terminated and concluded as, when any thread results to:
'true' in case of OR
'false' in case of AND

An expression can have further sub-expressions; so an expression with
combination of both operands, will be considered as parent expression

Yes it does change the conventional implementation of OR operator, and AND
operator, in Java

So it would be better to have two new operators/symbols itself

Parallel OR
|||

Parallel AND
&&&

We can go with the symbol |&& also in case of Parallel AND


Looking forward to hearing your thoughts


Best Wishes & Regards
Prakhar Makhija

----

Hi Prakhar,


On 22/06/2019 1:28 am, Prakhar Makhija wrote:
> Topic: OR operator represented by ||

That should be the subject of your email - not a reply to a digest.


> Query: The expression evaluation of the operands, of OR operator, does it
> happen in parallel, when Java code runs, in the current versions?

No, there is no parallel evaluation of anything in Java. It would be
wrong to do so in this case as:

"The conditional-or operator || operator is like | (§15.22.2), but
evaluates its righthand operand only if the value of its left-hand
operand is false."


David


More information about the core-libs-dev mailing list