> I would offer the following definitions:

> - Parallelism is a (design) concept for expressing collateral actions in 
> which the processing order of the actions is unspecified. They may take place 
> serially or 
> contemporaneously in real time, or a mixture of the two.

> - Threads are an implementation mechanism for realising collateral actions 
> within a single processing environment.

> Neither of the above implies multiple CPUs or processing units.

I would agree wholeheartedly with most of that. Parallelism is purely a concept 
of multiple tasks running at the same time

Threads or processes are just implementations of that concept. Threads tend to 
be used for related tasks in a single process. Separate processes tend to be 
used for unrelated or independent tasks. Those are not hard and fast rules.

However, multiple independent compute units must be required for *true* 
parallelism. On a single processor any tasks running at the same time is just 
an illusion, normally created by the OS in time slicing between tasks based on 
certain criteria (priority, I/O, cpu usage etc.). That applies equally to 
threads or processes

Various languages assist, or purely exist, to make creating multi-tasking 
easier, but it ultimately all boils down to the same thing.

Regards,
Gary


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to