для работы с потоками:
                  
                  
                  
                  
                  
                  (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
Обсуждают сегодня