Комментарии 14
По умолчанию, в Go все goroutines выполняются в одном потоке (thread) по очереди. Так что формально это однопоточная программа, хотя и имеет пять независимых путей исполнения. Количество os threads задается через GOMAXPROCS.
Презентация по теме: «Concurrency is not Parallelism (it's better)»
Презентация по теме: «Concurrency is not Parallelism (it's better)»
0
А как же:
// Просим Go использовать все имеющиеся в системе процессоры.
runtime.GOMAXPROCS(runtime.NumCPU())
?
// Просим Go использовать все имеющиеся в системе процессоры.
runtime.GOMAXPROCS(runtime.NumCPU())
?
+3
два независимых потока для чтения и чтения из локального и удаленного сокета
Эм, а не чтения и записи?
Эм, а не чтения и записи?
0
> TCP/IP proxy
Я вспомнил, как 4 года назад на Delphi писал первую программу, которая напрямую вызывает функции стека, не пользуясь готовыми объектами. Это был как раз таки однопоточный портовый прокси с дампом данных. Эту программу я использовал для дебага и реверс инженеринга. И до сих пор ей пользуюсь.
Извините за оффтоп
Я вспомнил, как 4 года назад на Delphi писал первую программу, которая напрямую вызывает функции стека, не пользуясь готовыми объектами. Это был как раз таки однопоточный портовый прокси с дампом данных. Эту программу я использовал для дебага и реверс инженеринга. И до сих пор ей пользуюсь.
Извините за оффтоп
-1
Go подталкивает на многопоточное программирование (а не отталкивает, как C++, даже на стероидах нового стандарта).
Голый С++ может и отталкивает от потоков.
Но библиотеки типа boost.asio наоборот позволяют элементарно писать многопоточные программы без явной низкоуровневой синхронизации.
0
Супер!
Может быть глупый вопрос, но почему binary_logger не создётся через make(chan []byte)?
Может быть глупый вопрос, но почему binary_logger не создётся через make(chan []byte)?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
TCP/IP proxy на Go