package main
/* Билеты по Проектированию Высоко нагруженных систем
- В этом конспекте нет автоматической грамматической проверки
- Он написан для личного пользования, исключительно для подготовки к экзамену
package main
/* Билеты по Проектированию Высоко нагруженных систем
############################################### | |
# General parameters | |
# Sets the verbosity of the program; available values are "error", "warn", "info", "debug". | |
logLevel: debug | |
# Destinations of log messages; available values are "stdout", "file" and "syslog". | |
logDestinations: [stdout] | |
# If "file" is in logDestinations, this is the file which will receive the logs. | |
logFile: rtsp-simple-server.log |
I hereby claim:
To claim this, I am signing this object:
apiVersion: 1 | |
datasources: | |
- name: prometheus | |
type: prometheus | |
access: proxy | |
url: http://127.0.0.1:9090/ | |
version: 1 | |
isDefault: true | |
jsonData: | |
timeInterval: '30s' |
import asyncio | |
import logging | |
import ecs_logging | |
import sys | |
import json | |
from dataclasses import dataclass | |
from typing import Callable | |
from aiokafka import AIOKafkaConsumer, AIOKafkaProducer | |
from aiokafka.helpers import create_ssl_context | |
from .config import BOOTSTRAP_SERVERS # <--- that is supposed to be some valid connection string |
package main | |
import ( | |
"encoding/json" | |
"fmt" | |
"os" | |
yaml "gopkg.in/yaml.v2" | |
) |
#include <atomic> | |
#include <condition_variable> | |
#include <deque> | |
#include <functional> | |
#include <iostream> | |
#include <memory> | |
#include <mutex> | |
#include <thread> | |
extern "C" { |
#include <sys/socket.h> | |
#include <sys/un.h> | |
#include <stdlib.h> | |
#include <stdio.h> | |
#include <string.h> | |
#include <iostream> | |
/*! Код без проверок, он примерный, он не важен!!! | |
*/ | |
int create_socket() |
Приветствую тебя, читающий это. Если ты юн, неопытен и желаешь приобщиться к разработке на C++ в славном Kraftway, то ниже описано небольшое испытание, которое следует пройти, чтобы доказать свою преданность Тёмным Искусствам способность с этим самым C++ обращаться. Они несложные.
Тут две части: вопросы, на которые надо дать ответ (в виде кода) и небольшое практическое задание, максимально приближенное к тому, что программисты делают в повседневной работе.
Дисклеймер: наличие целого ряда заданий вовсе не означает, что необходимо выполнить идеально их все до единого, надо просто быть лучше остальных претендентов =)
Описанное ниже предлагается выполнить на C++ без использования сторонних библиотек, оформив в виде компилирующегося и запускающегося проекта для QMake/CMake на выбор. Использование Qt в основной части задания допускается, но не рекомендуется ограничиваться встроенными классами (очевидно, что тестовое окошко делать лучше именно на Qt, но свести всю многопоточность к вызову QtConcurrent::run
было бы неправильно, что станет ясно из последующих уточнений). Проект должен быть совместим с компилятором, поддерживающим С++11, а также Qt 5.
Предлагается реализовать пул потоков, класс для одновременного многопоточного выполнения произвольных задач, а также небольшое оконное приложение для проверки работоспособности получившегося решения.
Назовём классThreadPool
, он должен уметь следующее: