Why we refer to parallel programming as Asynchronous programming [duplicate]
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()
andMethod2()
respectively, thenMethod2()
will not start execution tillMethod1()
finishes processing, which we call sequential procession. - If both
Method1()
andMethod2()
are marked withasync
keywords, this meansMethod2()
will start processing without waiting forMethod1()
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?
asynchronous async-await
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.
add a comment |
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()
andMethod2()
respectively, thenMethod2()
will not start execution tillMethod1()
finishes processing, which we call sequential procession. - If both
Method1()
andMethod2()
are marked withasync
keywords, this meansMethod2()
will start processing without waiting forMethod1()
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?
asynchronous async-await
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
add a comment |
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()
andMethod2()
respectively, thenMethod2()
will not start execution tillMethod1()
finishes processing, which we call sequential procession. - If both
Method1()
andMethod2()
are marked withasync
keywords, this meansMethod2()
will start processing without waiting forMethod1()
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?
asynchronous async-await
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()
andMethod2()
respectively, thenMethod2()
will not start execution tillMethod1()
finishes processing, which we call sequential procession. - If both
Method1()
andMethod2()
are marked withasync
keywords, this meansMethod2()
will start processing without waiting forMethod1()
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
asynchronous async-await
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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!
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
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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!
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
add a comment |
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!
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
add a comment |
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!
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!
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
add a comment |
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
add a comment |
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