Recently, I had a curious linguistic question. Why is multithreading called multithreading?

There are two different concepts of stream and thread in programming.

The first indicates an object to perform operations (most often data transfer or accumulation), while the second indicates an object that allows you to execute some program code in parallel with other branches of code.

The first word is translated into Russian as a поток - everything is logical, they are all called that. The second word is translated as a нить .

So why in various kinds of literature and other media sources this word is persistently translated as a stream ? Moreover, the term multithreading is firmly established in the Russian language, which is an analogue (but not a translation) of the word multithreading ? What can explain such a curious phenomenon? Or is there still a difference between multithreading and multithreading? And if there is a difference, what is the analogue of the term multifilament in the English language?

    3 answers 3

    Stream = thread (if we are talking about "threads" (Thread), not streams (Stream)). And about the substitution of the concept, you can read in the wiki

    The translation of the English term thread as a “stream” in the context associated with programming contradicts its translation of the “thread” in the common language context, and also creates conflicts with the term stream (“stream”).

    However, the term “stream” is associated with translations of foreign technical literature made in the 1970s by the publishing house “Mir”. At present, in “academic circles” (that is, in textbooks, teaching aids, university courses, dissertations, etc.), it is considered a reference. The terms "thread", "thread", etc., are considered technical jargon.

    • one
      It is traditionally considered that the answer in the “historically so-formed” style is not a satisfactory answer to a question like “why?”. Formally, this answer seems to fit. But it is too universal and does not affect the essence of the issue. - Shamov
    • one
      @Shamov: Well, what answer can you give to the question about terminology? Can anyone really discover the reason why the term “thread” has defeated the term “thread”? After all, we are not a linguistic forum. - VladD
    • @VladD It is not necessary to open it. She is on the surface. Terms are not borrowed in the language as it will. Other words are possible, but the terms are definitely not. For them, there is a certain algorithm. And although it was invented by linguists, programmers should not be surprised by the existence of such an algorithm. This idea should be close to them. - Shamov
    • @Shamov: I don’t think semantics is so real important. We adopted the French word “out of place” without understanding semantics. - VladD
    • @VladD Firstly, "not at ease" is not a term. Secondly, the algorithm allows tracing in cases where there is no word closer in meaning. And, thirdly, what can be more important than semantics in terminology? :) - Shamov

    The term thread meant before the process , and thread - that is, the thread concept arose relatively recently, when the concept of the thread began to stand out as part of the process.

    Now in general, the concept of flow and threads are synonyms, although it must be understood that sometimes a flow can be understood as a process. But the thread process is never understood.

    Differences between process and thread

    • 2
      @Barmaley ♦, and you can still remember the confusion (now it is a gray-haired old) with tasks (they are TASK). In some places it was a synonym for process, and in other threads. By the way, the concept of threads (they were called the task), as several independent sequences of commands within a single process (or working with shared memory) emerged long ago (already in the 60s). - avp
    • @avp what are you old :) - Barmaley
    • @Barmaley looks like PL / I is older (TASK type is from there). And this is the mid 60s - alexlz

    In addition to blunt tracing, in which the term enters another language in the form of a literal translation (perhaps even partial), there is also semantic borrowing, in which the term in the target language becomes the word best suited to its meaning.

    "Multi-threading" is stupid tracing from English. The original term is simply translated in parts. Moreover, it is sometimes possible to meet people who use the term partial copy - “multifacetedness” as the term.

    "Multithreading" is a full-fledged borrowing at the level of semantics. For both parts of the term, Russian words were chosen that ideally corresponded to the meaning of the concept itself, and not the word by which it is designated in a foreign language. Obviously, the word “thread” fits much better than the word “thread”. It is even the Americans themselves understand this, because when they talk about command flow, they use the term “control flow”.

    Well, the fact that the Russian word "stream" corresponds to two concepts at once ("thread" and "stream") is not a problem at all. As a rule, it is always possible to understand from the context which of these two concepts is meant. And the context is always the most important thing. The meaning depends on it to a much greater degree than on the text itself. My favorite example that illustrates this is: "Americans eat too much." It would seem that the meaning of the phrase is obvious. Now imagine that the context for it is a conversation between two motorists discussing the advantages and disadvantages of various cars. In this context, the meaning of the phrase would be different: "American-made cars consume too much fuel."

    • one
      Semantic borrowing took place both at the “flow” level (@barmaley writes about those times) and later at the “thread” level. In the case of compound words, the tracing mechanism was activated, therefore, to name only one of them “stupid” tracing paper would not be correct. Since we have a linguistic corner here: the proto-German ancestor of thread is in form and meaning a relative of our “spin”, “strand”, that is, the process is woven from threads. The word “flow”, on the contrary, has no material semantic component, but it has a temporary / procedural one. Therefore, what do the Americans "understand" there is a big question. ;) - idle sign
    • @idlesign First, semantic borrowing could not happen twice. The results of the first time cancel is not as easy as it may seem. Especially in the case when the first time was more successful. The idea that the processes are woven of threads is a product of someone's sick fantasy (hopefully not yours). Normal people do not think so about the processes and flows. Most likely someone just did not understand the subject, and his violent imagination spawned this monstrous image. - Shamov
    • @idlesign Secondly, semantic borrowing cannot occur through the tracing mechanism. These are mutually exclusive things. Like the hand can be either right or left. They both need. But each is some one. Or as pardon and penalty. Maybe one thing. Even if we are not talking abstractly, but about a specific mechanism ... for example, about hanging. This is not to say that someone was pardoned by hanging. - Shamov
    • You probably read between the lines again, I didn’t say anything about this. borrowing through tracing , or about the contrary. I spoke about the formation of compound words. In addition, no results were required to be canceled: the variability of Russian is conditioned by the polysemantic English. Well, finally, your statement about the sick imagination and normality of people is lengthy: in most OSs, threads are part of the process, and the interweaving (thread, twist) can be seen from the division of one address space, instructions, context. - idle sign
    • @idlesign Re-read yourself. The fact that semantic borrowing occurred through tracing is not written between the lines. - Shamov