для работы с потоками:
(main.rs)
use std::time::Duration;
use std::thread;
fn main() {
for i in 1..10 {
thread::spawn(move || {
println!("thread: number {}!", i);
thread::sleep(Duration::from_millis(100));
});
}
println!("hi from the main thread!");
}
Вывод этой программы:
thread: number 1!
thread: number 2!
thread: number 3!
thread: number 4!
thread: number 5!
thread: number 6!
hi from the main thread!
thread: number 7!
thread: number 9%
Вопрос: что за знак процента в конце? Откуда он взялся?
Использую zsh + p10k + oh my zsh.
Запусти sh потом свой бинарь.
На баше всё хорошо. И еще, заметил, что потоков ВСЕГДА меньше 10. thread: number 2! thread: number 1! thread: number 3! thread: number 5! thread: number 4! thread: number 6! hi from the main thread! thread: number 9! thread: number 7! Тут их ровно 8 + главный.
ну да, 1..10 это 1 2 3 4 5 6 7 8 9
+ спасибо тебе, чувак 👍. Чет я пропускаю важные вещи ))
Проблема была в p10k :(
zsh, благодаря одной из своих опций, печатает символ %, пробелов на всю ширину, и \r — и всё это после каждой выполненной команды. если команда закончилась не на новой строчке, то пробелы перейдут на строку ниже, и возврат каретки \r не "затрет" знак %. это не баг а фича. а p10k здесь ни при чем.
https://unix.stackexchange.com/questions/167582/why-zsh-ends-a-line-with-a-highlighted-percent-symbol#167600 http://zsh.sourceforge.net/Doc/Release/Options.html#Prompting PROMPT_EOL_MARK
Обсуждают сегодня