Why we refer to parallel programming as Asynchronous programming [duplicate]












1
















This question already has an answer here:




  • What is the difference between concurrency, parallelism and asynchronous methods?

    10 answers




In English, the word synchronous means "happening at the same time" while the word asynchronous means the opposite (i.e. "not simultaneous or concurrent in time : not synchronous")



Why all references refer to parallel programming as asynchronous programming instead of synchronous programming like this one
And why they all use the keyword async (which is an abbreviation of asynchronous) instead of sync.



For example:




  • If I have 2 consecutive methods Method1() and Method2() respectively, thenMethod2() will not start execution till Method1() finishes processing, which we call sequential procession.

  • If both Method1() and Method2() are marked with async keywords, this means Method2() will start processing without waiting for Method1() to finish.

  • So, I can describe this as parallel calling, concurrent calling, synchronous call, or anything indicating they run together without waiting.

  • Naming the second scenario Asynchronous gives an impression that they are not processing in parallel.


This if confusing, isn't it?



I am not a native English speaker, am I missing something in the English language or in the parallel programming concept?










share|improve this question















marked as duplicate by Joakim Danielson, Daniel Pryden, Community Jan 1 at 17:20


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 2





    Here, asynchronous means without synchronicity, i.e. you start an operation that then proceeds asynchronously.

    – ninjalj
    Jan 1 at 13:09






  • 1





    In parallel programming (or multithreading) threads are executed independently of each other and might be done with their job at completely different times. They are not in sync or not synchronised with each other so they are asynchronous. synchronous is not a term used in this context the same way as asynchronous.

    – Joakim Danielson
    Jan 1 at 13:15






  • 1





    The "not simultaneous or concurrent in time" that asynchronous means in this case is not referring to the independent tasks, which may in fact be executing concurrently. It's referring to the relationship of the asynchronous subroutine with its caller: the result of the subroutine is "not simultaneous or concurrent" with the code that called it.

    – Daniel Pryden
    Jan 1 at 16:43











  • We don't! You can have asynchronous code that doesn't run in parallel.

    – Paulo Morgado
    Jan 1 at 21:25
















1
















This question already has an answer here:




  • What is the difference between concurrency, parallelism and asynchronous methods?

    10 answers




In English, the word synchronous means "happening at the same time" while the word asynchronous means the opposite (i.e. "not simultaneous or concurrent in time : not synchronous")



Why all references refer to parallel programming as asynchronous programming instead of synchronous programming like this one
And why they all use the keyword async (which is an abbreviation of asynchronous) instead of sync.



For example:




  • If I have 2 consecutive methods Method1() and Method2() respectively, thenMethod2() will not start execution till Method1() finishes processing, which we call sequential procession.

  • If both Method1() and Method2() are marked with async keywords, this means Method2() will start processing without waiting for Method1() to finish.

  • So, I can describe this as parallel calling, concurrent calling, synchronous call, or anything indicating they run together without waiting.

  • Naming the second scenario Asynchronous gives an impression that they are not processing in parallel.


This if confusing, isn't it?



I am not a native English speaker, am I missing something in the English language or in the parallel programming concept?










share|improve this question















marked as duplicate by Joakim Danielson, Daniel Pryden, Community Jan 1 at 17:20


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 2





    Here, asynchronous means without synchronicity, i.e. you start an operation that then proceeds asynchronously.

    – ninjalj
    Jan 1 at 13:09






  • 1





    In parallel programming (or multithreading) threads are executed independently of each other and might be done with their job at completely different times. They are not in sync or not synchronised with each other so they are asynchronous. synchronous is not a term used in this context the same way as asynchronous.

    – Joakim Danielson
    Jan 1 at 13:15






  • 1





    The "not simultaneous or concurrent in time" that asynchronous means in this case is not referring to the independent tasks, which may in fact be executing concurrently. It's referring to the relationship of the asynchronous subroutine with its caller: the result of the subroutine is "not simultaneous or concurrent" with the code that called it.

    – Daniel Pryden
    Jan 1 at 16:43











  • We don't! You can have asynchronous code that doesn't run in parallel.

    – Paulo Morgado
    Jan 1 at 21:25














1












1








1









This question already has an answer here:




  • What is the difference between concurrency, parallelism and asynchronous methods?

    10 answers




In English, the word synchronous means "happening at the same time" while the word asynchronous means the opposite (i.e. "not simultaneous or concurrent in time : not synchronous")



Why all references refer to parallel programming as asynchronous programming instead of synchronous programming like this one
And why they all use the keyword async (which is an abbreviation of asynchronous) instead of sync.



For example:




  • If I have 2 consecutive methods Method1() and Method2() respectively, thenMethod2() will not start execution till Method1() finishes processing, which we call sequential procession.

  • If both Method1() and Method2() are marked with async keywords, this means Method2() will start processing without waiting for Method1() to finish.

  • So, I can describe this as parallel calling, concurrent calling, synchronous call, or anything indicating they run together without waiting.

  • Naming the second scenario Asynchronous gives an impression that they are not processing in parallel.


This if confusing, isn't it?



I am not a native English speaker, am I missing something in the English language or in the parallel programming concept?










share|improve this question

















This question already has an answer here:




  • What is the difference between concurrency, parallelism and asynchronous methods?

    10 answers




In English, the word synchronous means "happening at the same time" while the word asynchronous means the opposite (i.e. "not simultaneous or concurrent in time : not synchronous")



Why all references refer to parallel programming as asynchronous programming instead of synchronous programming like this one
And why they all use the keyword async (which is an abbreviation of asynchronous) instead of sync.



For example:




  • If I have 2 consecutive methods Method1() and Method2() respectively, thenMethod2() will not start execution till Method1() finishes processing, which we call sequential procession.

  • If both Method1() and Method2() are marked with async keywords, this means Method2() will start processing without waiting for Method1() to finish.

  • So, I can describe this as parallel calling, concurrent calling, synchronous call, or anything indicating they run together without waiting.

  • Naming the second scenario Asynchronous gives an impression that they are not processing in parallel.


This if confusing, isn't it?



I am not a native English speaker, am I missing something in the English language or in the parallel programming concept?





This question already has an answer here:




  • What is the difference between concurrency, parallelism and asynchronous methods?

    10 answers








asynchronous async-await






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 1 at 16:12







Gouda

















asked Jan 1 at 11:53









GoudaGouda

755518




755518




marked as duplicate by Joakim Danielson, Daniel Pryden, Community Jan 1 at 17:20


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









marked as duplicate by Joakim Danielson, Daniel Pryden, Community Jan 1 at 17:20


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.










  • 2





    Here, asynchronous means without synchronicity, i.e. you start an operation that then proceeds asynchronously.

    – ninjalj
    Jan 1 at 13:09






  • 1





    In parallel programming (or multithreading) threads are executed independently of each other and might be done with their job at completely different times. They are not in sync or not synchronised with each other so they are asynchronous. synchronous is not a term used in this context the same way as asynchronous.

    – Joakim Danielson
    Jan 1 at 13:15






  • 1





    The "not simultaneous or concurrent in time" that asynchronous means in this case is not referring to the independent tasks, which may in fact be executing concurrently. It's referring to the relationship of the asynchronous subroutine with its caller: the result of the subroutine is "not simultaneous or concurrent" with the code that called it.

    – Daniel Pryden
    Jan 1 at 16:43











  • We don't! You can have asynchronous code that doesn't run in parallel.

    – Paulo Morgado
    Jan 1 at 21:25














  • 2





    Here, asynchronous means without synchronicity, i.e. you start an operation that then proceeds asynchronously.

    – ninjalj
    Jan 1 at 13:09






  • 1





    In parallel programming (or multithreading) threads are executed independently of each other and might be done with their job at completely different times. They are not in sync or not synchronised with each other so they are asynchronous. synchronous is not a term used in this context the same way as asynchronous.

    – Joakim Danielson
    Jan 1 at 13:15






  • 1





    The "not simultaneous or concurrent in time" that asynchronous means in this case is not referring to the independent tasks, which may in fact be executing concurrently. It's referring to the relationship of the asynchronous subroutine with its caller: the result of the subroutine is "not simultaneous or concurrent" with the code that called it.

    – Daniel Pryden
    Jan 1 at 16:43











  • We don't! You can have asynchronous code that doesn't run in parallel.

    – Paulo Morgado
    Jan 1 at 21:25








2




2





Here, asynchronous means without synchronicity, i.e. you start an operation that then proceeds asynchronously.

– ninjalj
Jan 1 at 13:09





Here, asynchronous means without synchronicity, i.e. you start an operation that then proceeds asynchronously.

– ninjalj
Jan 1 at 13:09




1




1





In parallel programming (or multithreading) threads are executed independently of each other and might be done with their job at completely different times. They are not in sync or not synchronised with each other so they are asynchronous. synchronous is not a term used in this context the same way as asynchronous.

– Joakim Danielson
Jan 1 at 13:15





In parallel programming (or multithreading) threads are executed independently of each other and might be done with their job at completely different times. They are not in sync or not synchronised with each other so they are asynchronous. synchronous is not a term used in this context the same way as asynchronous.

– Joakim Danielson
Jan 1 at 13:15




1




1





The "not simultaneous or concurrent in time" that asynchronous means in this case is not referring to the independent tasks, which may in fact be executing concurrently. It's referring to the relationship of the asynchronous subroutine with its caller: the result of the subroutine is "not simultaneous or concurrent" with the code that called it.

– Daniel Pryden
Jan 1 at 16:43





The "not simultaneous or concurrent in time" that asynchronous means in this case is not referring to the independent tasks, which may in fact be executing concurrently. It's referring to the relationship of the asynchronous subroutine with its caller: the result of the subroutine is "not simultaneous or concurrent" with the code that called it.

– Daniel Pryden
Jan 1 at 16:43













We don't! You can have asynchronous code that doesn't run in parallel.

– Paulo Morgado
Jan 1 at 21:25





We don't! You can have asynchronous code that doesn't run in parallel.

– Paulo Morgado
Jan 1 at 21:25












1 Answer
1






active

oldest

votes


















0














Parallel programming implies concurrently executing activities. Today, two kinds of activities are used: threads and asynchronous procedures (coroutines are special kind of asynchronous procedures). Both kinds of activities can coexist in the same program. If most or all activities are threads, then the program is called multithreaded. If most or all activities are asynchronous procedures, the program is called asynchronous. And if program consists of a single thread, then it is called synchronous. But most funny thing is when that single thread is executing asynchronous procedures (as, for example, the GUI thread in Java/Swing or Android does), the program is asynchronous at the same time!






share|improve this answer
























  • This is more confusing :), please check the example I added to the question to clarify the source of my initial confusion

    – Gouda
    Jan 1 at 16:13











  • Parallelism does not imply concurrency the same way concurrency does not imply parallelism.

    – Paulo Morgado
    Jan 1 at 21:22











  • @PauloMorgado others say "parallelism implies concurrency": medium.com/from-the-scratch/…

    – Alexei Kaigorodov
    Jan 2 at 5:01











  • They are wrong. Concurreny means accessing the same resources at the "same" time. Code that does not access the same resources can run in parallel without concurrency. And code that accesses the same resources can run exculsivly and concurrently.

    – Paulo Morgado
    Jan 2 at 17:47


















1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














Parallel programming implies concurrently executing activities. Today, two kinds of activities are used: threads and asynchronous procedures (coroutines are special kind of asynchronous procedures). Both kinds of activities can coexist in the same program. If most or all activities are threads, then the program is called multithreaded. If most or all activities are asynchronous procedures, the program is called asynchronous. And if program consists of a single thread, then it is called synchronous. But most funny thing is when that single thread is executing asynchronous procedures (as, for example, the GUI thread in Java/Swing or Android does), the program is asynchronous at the same time!






share|improve this answer
























  • This is more confusing :), please check the example I added to the question to clarify the source of my initial confusion

    – Gouda
    Jan 1 at 16:13











  • Parallelism does not imply concurrency the same way concurrency does not imply parallelism.

    – Paulo Morgado
    Jan 1 at 21:22











  • @PauloMorgado others say "parallelism implies concurrency": medium.com/from-the-scratch/…

    – Alexei Kaigorodov
    Jan 2 at 5:01











  • They are wrong. Concurreny means accessing the same resources at the "same" time. Code that does not access the same resources can run in parallel without concurrency. And code that accesses the same resources can run exculsivly and concurrently.

    – Paulo Morgado
    Jan 2 at 17:47
















0














Parallel programming implies concurrently executing activities. Today, two kinds of activities are used: threads and asynchronous procedures (coroutines are special kind of asynchronous procedures). Both kinds of activities can coexist in the same program. If most or all activities are threads, then the program is called multithreaded. If most or all activities are asynchronous procedures, the program is called asynchronous. And if program consists of a single thread, then it is called synchronous. But most funny thing is when that single thread is executing asynchronous procedures (as, for example, the GUI thread in Java/Swing or Android does), the program is asynchronous at the same time!






share|improve this answer
























  • This is more confusing :), please check the example I added to the question to clarify the source of my initial confusion

    – Gouda
    Jan 1 at 16:13











  • Parallelism does not imply concurrency the same way concurrency does not imply parallelism.

    – Paulo Morgado
    Jan 1 at 21:22











  • @PauloMorgado others say "parallelism implies concurrency": medium.com/from-the-scratch/…

    – Alexei Kaigorodov
    Jan 2 at 5:01











  • They are wrong. Concurreny means accessing the same resources at the "same" time. Code that does not access the same resources can run in parallel without concurrency. And code that accesses the same resources can run exculsivly and concurrently.

    – Paulo Morgado
    Jan 2 at 17:47














0












0








0







Parallel programming implies concurrently executing activities. Today, two kinds of activities are used: threads and asynchronous procedures (coroutines are special kind of asynchronous procedures). Both kinds of activities can coexist in the same program. If most or all activities are threads, then the program is called multithreaded. If most or all activities are asynchronous procedures, the program is called asynchronous. And if program consists of a single thread, then it is called synchronous. But most funny thing is when that single thread is executing asynchronous procedures (as, for example, the GUI thread in Java/Swing or Android does), the program is asynchronous at the same time!






share|improve this answer













Parallel programming implies concurrently executing activities. Today, two kinds of activities are used: threads and asynchronous procedures (coroutines are special kind of asynchronous procedures). Both kinds of activities can coexist in the same program. If most or all activities are threads, then the program is called multithreaded. If most or all activities are asynchronous procedures, the program is called asynchronous. And if program consists of a single thread, then it is called synchronous. But most funny thing is when that single thread is executing asynchronous procedures (as, for example, the GUI thread in Java/Swing or Android does), the program is asynchronous at the same time!







share|improve this answer












share|improve this answer



share|improve this answer










answered Jan 1 at 15:30









Alexei KaigorodovAlexei Kaigorodov

10.1k11229




10.1k11229













  • This is more confusing :), please check the example I added to the question to clarify the source of my initial confusion

    – Gouda
    Jan 1 at 16:13











  • Parallelism does not imply concurrency the same way concurrency does not imply parallelism.

    – Paulo Morgado
    Jan 1 at 21:22











  • @PauloMorgado others say "parallelism implies concurrency": medium.com/from-the-scratch/…

    – Alexei Kaigorodov
    Jan 2 at 5:01











  • They are wrong. Concurreny means accessing the same resources at the "same" time. Code that does not access the same resources can run in parallel without concurrency. And code that accesses the same resources can run exculsivly and concurrently.

    – Paulo Morgado
    Jan 2 at 17:47



















  • This is more confusing :), please check the example I added to the question to clarify the source of my initial confusion

    – Gouda
    Jan 1 at 16:13











  • Parallelism does not imply concurrency the same way concurrency does not imply parallelism.

    – Paulo Morgado
    Jan 1 at 21:22











  • @PauloMorgado others say "parallelism implies concurrency": medium.com/from-the-scratch/…

    – Alexei Kaigorodov
    Jan 2 at 5:01











  • They are wrong. Concurreny means accessing the same resources at the "same" time. Code that does not access the same resources can run in parallel without concurrency. And code that accesses the same resources can run exculsivly and concurrently.

    – Paulo Morgado
    Jan 2 at 17:47

















This is more confusing :), please check the example I added to the question to clarify the source of my initial confusion

– Gouda
Jan 1 at 16:13





This is more confusing :), please check the example I added to the question to clarify the source of my initial confusion

– Gouda
Jan 1 at 16:13













Parallelism does not imply concurrency the same way concurrency does not imply parallelism.

– Paulo Morgado
Jan 1 at 21:22





Parallelism does not imply concurrency the same way concurrency does not imply parallelism.

– Paulo Morgado
Jan 1 at 21:22













@PauloMorgado others say "parallelism implies concurrency": medium.com/from-the-scratch/…

– Alexei Kaigorodov
Jan 2 at 5:01





@PauloMorgado others say "parallelism implies concurrency": medium.com/from-the-scratch/…

– Alexei Kaigorodov
Jan 2 at 5:01













They are wrong. Concurreny means accessing the same resources at the "same" time. Code that does not access the same resources can run in parallel without concurrency. And code that accesses the same resources can run exculsivly and concurrently.

– Paulo Morgado
Jan 2 at 17:47





They are wrong. Concurreny means accessing the same resources at the "same" time. Code that does not access the same resources can run in parallel without concurrency. And code that accesses the same resources can run exculsivly and concurrently.

– Paulo Morgado
Jan 2 at 17:47





Popular posts from this blog

Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

Does disintegrating a polymorphed enemy still kill it after the 2018 errata?

A Topological Invariant for $pi_3(U(n))$