Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created March 13, 2026 08:25
Show Gist options
  • Select an option

  • Save sunmeat/a766eff79b836203829fe2d31c3ed33f to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/a766eff79b836203829fe2d31c3ed33f to your computer and use it in GitHub Desktop.
створення потоку (MacOS)
#include <iostream>
#include <thread>
#include <chrono>
#include <string>
using namespace std;
// Функція для оновлення заголовка вікна терміналу
void updateTimeInWindowTitle() {
while (true) {
// Отримуємо поточний час
auto now = chrono::system_clock::to_time_t(chrono::system_clock::now());
string timeStr = ctime(&now);
// Видаляємо символ нового рядка в кінці (ctime додає \n)
if (!timeStr.empty() && timeStr.back() == '\n') {
timeStr.pop_back();
}
// ESC]0; — це стандартна послідовність для зміни заголовка вікна + вкладки
// в більшості терміналів (включаючи macOS Terminal та iTerm2)
cout << "\033]0;" << timeStr << "\007" << flush;
// Затримка 1 секунда
this_thread::sleep_for(chrono::seconds(1));
}
}
int main() {
// setlocale(LC_ALL, "uk_UA.UTF-8"); // можна спробувати, але зазвичай не обов’язково
cout << "Програма запущена. Заголовок терміналу оновлюється кожну секунду.\n";
cout << "Щоб зупинити — натисніть Ctrl+C\n\n";
// Запускаємо потік оновлення заголовка
thread timeThread(updateTimeInWindowTitle);
// Основний потік робить свою роботу
for (int i = 1; i < 10000; ++i) {
cout << "Інші дії " << i << ".\n";
this_thread::sleep_for(chrono::microseconds(200'000)); // 200 мс
}
// Чекаємо завершення потоку (в реальності до нього не дійде без Ctrl+C)
timeThread.join();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment