Created
March 13, 2026 08:25
-
-
Save sunmeat/a766eff79b836203829fe2d31c3ed33f to your computer and use it in GitHub Desktop.
створення потоку (MacOS)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #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