Информация об изменениях

Сообщение Re[2]: Опыт работы с сетью и/или многопоточностью (C++) от 14.06.2017 11:32

Изменено 14.06.2017 11:35 AlexGin

Re[2]: Опыт работы с сетью и/или многопоточностью (C++)
Здравствуйте, RussianFellow, Вы писали:

RF>DTF, по поводу многопоточности: поставьте себе дома на компьютер Visual C++ и создайте несколько достаточно простых программ, реализующих многопоточность--запуск потоков, их приостановку, их возобновление, их завершение (обычное и принудительное).


Ну, прежде всего, я бы задачу поставил несколько иначе.
Например: параллельные вычисления (пока даже не столь важно чего, хоть знаков в числе Pi: https://habrahabr.ru/post/309674 ).
Затем, опробовав идею в однопоточной реализации, озаботился бы сделать её многопоточную версию.
В программе я определил бы, сколько ядер имеется на данном CPU, чтобы загрузить каждое из ядер вычислительными задачами.
После этого, добился бы синхронизации потоков (например — через крит/секции).
Применяя таймер (или мультимедийный таймер), определил бы выигрыш от применения многопоточности.

RF>Также советую попробывать использовать в этих задачах многопоточности различные механизмы синхронизации потоков--семафор, мьютекс, критическую секцию и т.д. И у Вас уже будет опыт (пусть и минимальный) по работе с потоками.

Задача немного искусственная, ИМХО не понятна суть данного действа.
Также непонятны критерии правильных/неправильных решений для данной задачи.
Правильнее было бы — поискать в интернете "тестовые задания C++".


RF>Насчёт работы с сетью--не знаю, тут опыт можно приобрести только в организации, где есть сеть.

Но хоть что-то можно поизучать даже и дома: соединил ноут и стационарный комп, вот уже тебе и простейшая сеть.
Пощупать TCP и UDP, ознакомиться с сокетами — можно даже и на ней.

P.S. Гугли ключевые слова по данным технологиям — и будет возможность найти некоторые примеры решений.
Re[2]: Опыт работы с сетью и/или многопоточностью (C++)
Здравствуйте, RussianFellow, Вы писали:

RF>DTF, по поводу многопоточности: поставьте себе дома на компьютер Visual C++ и создайте несколько достаточно простых программ, реализующих многопоточность--запуск потоков, их приостановку, их возобновление, их завершение (обычное и принудительное).


Ну, прежде всего, я бы задачу поставил несколько иначе.
Например: параллельные вычисления (пока даже не столь важно чего, хоть знаков в числе Pi: https://habrahabr.ru/post/309674 ).
Затем, опробовав идею в однопоточной реализации, озаботился бы сделать её многопоточную версию.
В программе я определил бы, сколько ядер имеется на данном CPU, чтобы загрузить каждое из ядер вычислительными задачами.
После этого, добился бы синхронизации потоков (например — через крит/секции).
Применяя таймер (или мультимедийный таймер), определил бы выигрыш от применения многопоточности.

RF>Также советую попробывать использовать в этих задачах многопоточности различные механизмы синхронизации потоков--семафор, мьютекс, критическую секцию и т.д. И у Вас уже будет опыт (пусть и минимальный) по работе с потоками.

Задача немного искусственная, ИМХО не понятна суть данного действа.
Также непонятны критерии правильных/неправильных решений для данной задачи.
Правильнее было бы — поискать в интернете "тестовые задания C++".
Вот пример: https://docs.google.com/document/d/1trDh18L8FJ8cVlDZ4zSvFDXHLmvBs8UBET3GhGkfP1k/edit#heading=h.qbmjazpmtirt

RF>Насчёт работы с сетью--не знаю, тут опыт можно приобрести только в организации, где есть сеть.

Но хоть что-то можно поизучать даже и дома: соединил ноут и стационарный комп, вот уже тебе и простейшая сеть.
Пощупать TCP и UDP, ознакомиться с сокетами — можно даже и на ней.

P.S. Гугли ключевые слова по данным технологиям — и будет возможность найти некоторые примеры решений.