大家好。培训课程中有几个任务需要,例如,在竞争地图中记录值,竞争性地平方值,还有一些还需要一些东西有竞争力地完成。我不明白你说的竞争是什么意思?谁能举一个完全竞争的操作的例子,但是这么简单的例子,就好像你会展示一个孩子一样。
如果它很重要,那么 go 语言,但我认为这些东西与语言无关
我就是这么理解的。问题e
Написать программу, которая конкурентно рассчитает значение квадратов чисел взятых из массива (2,4,6,8,10) и выведет их квадраты в stdout.
如果竞争意味着并行计算,这是我的解决方案。
package main
import "fmt"
func square(num int) {
fmt.Println(num * num)
// fmt.Fprintln(os.Stdout, num*num)
}
func do() {
nums := [...]int{2, 4, 6, 8, 10}
for _, num := range nums {
go square(num)//параллельные вызовы square
}
fmt.Scanln()
}
竞争性操作是在时间上相互重叠的操作。例如,并发写入字典是一个线程开始向字典写入内容而第二个线程完成相同操作的情况。
据我了解,这是来自英语并发的糟糕跟踪文件,即 同时或并行。
当并行线程执行多个操作时。例如,有从 1 到 10 的数字,您对它们进行多线程平方以减少在上面花费的时间。或者你从不同的流向某个容器写入一些东西。等等。
更新:正如评论正确指出的那样,有一种观点认为并发性和并行性并不完全相同。在我看来,这是一个哲学问题。您需要查看特定编程语言中特定概念的实现才能了解细节。例如,异步实际上与并行执行不一样。
一般来说,英语“compete”和名词“competition”有相同的描图纸动词,在这种情况下可能是关于某种资源的竞争。而且通常这种竞争是通过不同的代码分支在不同的线程中执行的事实来确保的。