4
$\begingroup$

I'm writing about a problem that could be caused by race conditions between multiple threads, or OS-level processes on the same machine or different machines, or VM-level processes like the Erlang VM has.

In this context, the fact of parallel execution is the important part; the language or memory-sharing model is irrelevant.

Is there a generic word that means "thread or process"? "Concurrent unit of execution" is the best attempt I have so far, but it sounds awkward to me.

$\endgroup$
  • $\begingroup$ Andrew S. Tanenbaum mentions term "concurrent operation" in his Modern Operating Systems book. $\endgroup$ – user66212 Feb 15 '17 at 16:08
  • $\begingroup$ Concurrent thread? $\endgroup$ – paparazzo Feb 15 '17 at 17:40
5
$\begingroup$

A process is a context with one or more threads of execution (concurrent with other threads of execution, either in the same process, or perhaps in other processes), and with its own address space (and usually other resources such as open file descriptors, IPC mechanisms, etc.). More subtle details and implications are described here

So, if address space (and other such resources) isn't relevant to your discussion (and it's probably not given your description), then I would say that the word thread is sufficient to describe the entities involved in your discussion. Historically task has also been used to describe a thread, and indeed it was perhaps the first word used to describe this concept (see this).

(Note of course there's a difference between concurrent threads and parallel threads -- concurrent threads may be executed in parallel, but it is not necessary for operations to occur in parallel for them to suffer from the issues related to concurrency.)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.