Size: a a a

2020 January 11

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
А если не отдают то все виснет
Хм. Ну у нас тоже есть в таске запустишь бесконечный цикл то она намертво сожрет 1 поток да. Если конечно не сделать await Task.Yeald() тогда он будет ещё какую-то работу делать. Яб сказал что то что есть в Go у нас через async await больше делается чем через просто таски но по другому.
источник

AZ

Alex Zhukovsky in rust_offtopic
Victor Sapiens
Хм. Ну у нас тоже есть в таске запустишь бесконечный цикл то она намертво сожрет 1 поток да. Если конечно не сделать await Task.Yeald() тогда он будет ещё какую-то работу делать. Яб сказал что то что есть в Go у нас через async await больше делается чем через просто таски но по другому.
Не сожрёт
источник

B

Bogdan in rust_offtopic
Victor Sapiens
Ну на самом деле от этого есть некоторые возможности стрельнуть себе в ногу. Например у нас если именованный семафор не освободить то он может залочить намертво все инстансы этого приложения на машине.
Mutex тоже?
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
Не сожрёт
Всмысле? Если запустишь Task.Run(()= while(true){ Console.WriteLine(foo);}); и не будет Yeald он же нон стропом будет просто жрать 1 поток и все.
источник

VS

Victor Sapiens in rust_offtopic
Bogdan
Mutex тоже?
Он отравленный будет и это можно проверить
источник

AZ

Alex Zhukovsky in rust_offtopic
Victor Sapiens
Всмысле? Если запустишь Task.Run(()= while(true){ Console.WriteLine(foo);}); и не будет Yeald он же нон стропом будет просто жрать 1 поток и все.
Нет сам поток ос будет усвплять
источник

AZ

Alex Zhukovsky in rust_offtopic
Запусти на одном ядре две таких таски
источник

AZ

Alex Zhukovsky in rust_offtopic
Они обе будут работать
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
Нет сам поток ос будет усвплять
Ты о чем? Я в курсе что ядро процессора то не зависнет на этом потоке и оно потоки по очереди выполнят.
источник

AZ

Alex Zhukovsky in rust_offtopic
Victor Sapiens
Ты о чем? Я в курсе что ядро процессора то не зависнет на этом потоке и оно потоки по очереди выполнят.
А в го нет
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
А в го нет
Аааа
источник

B

Bogdan in rust_offtopic
Victor Sapiens
Ну на самом деле от этого есть некоторые возможности стрельнуть себе в ногу. Например у нас если именованный семафор не освободить то он может залочить намертво все инстансы этого приложения на машине.
The system closes the handle automatically when the process terminates. The semaphore object is destroyed when its last handle has been closed.


Т.е. если закрыть все экземпляры процесса этотресетнет его
источник

VS

Victor Sapiens in rust_offtopic
Alex Zhukovsky
А в го нет
Получаеться если 4 ядра и 4 рутины намертво локнулись какой-то  тяжёлой работой то все приложение будет сидет висеть чтоль или я что-то неправильно понял?)
источник

AZ

Alex Zhukovsky in rust_offtopic
Victor Sapiens
Получаеться если 4 ядра и 4 рутины намертво локнулись какой-то  тяжёлой работой то все приложение будет сидет висеть чтоль или я что-то неправильно понял?)
Именно так
источник

B

Bogdan in rust_offtopic
Victor Sapiens
Получаеться если 4 ядра и 4 рутины намертво локнулись какой-то  тяжёлой работой то все приложение будет сидет висеть чтоль или я что-то неправильно понял?)
Нет конечно, потоков больге чем ядер в пуле потоков
источник

B

Bogdan in rust_offtopic
Вон в дотнете тредпул 2000 потоков может наплодить
источник

B

Bogdan in rust_offtopic
Но скорость работы явно не обрадует
источник

VS

Victor Sapiens in rust_offtopic
Bogdan
The system closes the handle automatically when the process terminates. The semaphore object is destroyed when its last handle has been closed.


Т.е. если закрыть все экземпляры процесса этотресетнет его
Хз, лет 6 назад сталкивался что если запускал консольное приложение и там сжирал все места у семафора потом перезапускал его  не освободив у неймед семафора то оно висело и все
источник

VS

Victor Sapiens in rust_offtopic
Bogdan
Нет конечно, потоков больге чем ядер в пуле потоков
Мы про GO
источник

B

Bogdan in rust_offtopic
The GOMAXPROCS variable limits the number of operating system threads that can execute user-level Go code simultaneously. There is no limit to the number of threads that can be blocked in system calls on behalf of Go code; those do not count against the GOMAXPROCS limit. This package's GOMAXPROCS function queries and changes the limit.
источник