powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Потокобезопасное использование потоконебезопасных коллекций
25 сообщений из 145, страница 4 из 6
Потокобезопасное использование потоконебезопасных коллекций
    #38758827
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruПричем тут это?При том, что нет ничего страшного в том, что человек редко запускает потоки руками.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758835
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv Arm79 ,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
            Queue<int> queue = new Queue<int>();

            new Thread(() =>
            {
                Thread.Sleep(1000);

                lock (queue)
                {
                    queue.Enqueue(1);
                }

                Console.WriteLine(Thread.CurrentThread.ManagedThreadId + ": Added element to queue.");

            }).Start();

            Console.WriteLine(Thread.CurrentThread.ManagedThreadId + ": Waiting for size change...");

            while (true)
            {
                if (queue.Count > 0)
                {
                    Console.WriteLine(Thread.CurrentThread.ManagedThreadId + ": Noticed size change.");

                    break;
                }
            }



1) Скомплиировать в Release.
2) Запустить без дебагера.

Еще вопросы будут у вас?Что показать-то хотел?
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758839
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cdtyjvcodearticles.ruПричем тут это?При том, что нет ничего страшного в том, что человек редко запускает потоки руками.
Какую-то чушь ты пишешь. Сначала пишешь про использование тредпулов, потом о редкости запуска потоков руками. Возьмем WPF к примеру. Как ты там собрался использовать многопоточность, не используя вторых и последующих потоков? Или тредпул сам волшебным образом будет всё параллелить? Я, конечно, допускаю твой опус о том, что ты имел ввиду веб приложения, где реквесты параллелит IIS. Но это частность и никакого отношения к теме не имеет.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758846
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
.Net 4.5, Windows 7.1, не останавливается. Как я уже писал выше, спокойно может работать на другой конфигурации.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758849
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ru,
А автор, которого вы обосрали, гдето писал, что он приклдной разработчик WPF?
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758851
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Ну и плюс вы не из консоли запустили.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758856
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruЕвгенийВМСУ, Гайдар в принципе на такие статьи не способен, это перевод блога Эрика Липперта

Да, я верю, что он тру кодер, но после таких слов

...За всю мою карьеру, необходимость написать код, который запускает второй рабочий поток, возникала, вероятно, менее полудюжины раз.

вникать в его поток воображения стало лень.
Есть такие задачи, которые не особо расспараллелишь, например когда для последующего шага нужен результат текущего.
Напиши например "банальный многопоточный" генератор чисел Фиббоначи.
Или там генератор всех возможных программ на C#.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758861
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvskyANA,
Ну и плюс вы не из консоли запустили.Не понял, а из чего?
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758866
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvskyANA,
.Net 4.5, Windows 7.1, не останавливается. Как я уже писал выше, спокойно может работать на другой конфигурации.Что-то слабо верится.

.Net 4.5, Windows Server 2008 R2 Enterprise
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758867
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cdtyjvcodearticles.ru,
А автор, которого вы обосрали, гдето писал, что он приклдной разработчик WPF?
А автор, которого я обосрал, где-то писал, что он прикладной разработчик веб?

Более того, если ты читаешь не жопой, то должен увидеть такое предостережение.

...Предостережение: я не эксперт по многопоточному программированию. На самом деле, я бы даже не стал утверждать, что я в нём компетентен. Так что воспринимайте всё, что я пишу на эту тему, с некоторым скептицизмом.

А это уже первый звоночек по поводу того, а не "обосрать" ли его.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758874
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВЕсть такие задачи, которые не особо расспараллелишь, например когда для последующего шага нужен результат текущего.
Да что ты говоришь http://codearticles.ru/articles/2492

ЕвгенийВНапиши например "банальный многопоточный" генератор чисел Фиббоначи.
http://forgetcode.com/Java/221-Multithreading-For-Prime-and-Fibonacci-numbers-using-pipes

ЕвгенийВИли там генератор всех возможных программ на C#.
А в чем проблема?
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758877
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Еще раз — релиз поставили, дебагер отключили? Если не умеете, то скомпилируйте экзешник, потом откройте cmd руками, и запустите.
Если все равно раьотает нормально — значит вам повезло. В таком случае вбейте в гугле «.net volatile infinite loop», и почитайте поимеры со стэковерфлоу. После этого ваши сомнения будут развеяны.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758890
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv Arm79 ,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
            Queue<int> queue = new Queue<int>();

            new Thread(() =>
            {
                Thread.Sleep(1000);

                lock (queue)
                {
                    queue.Enqueue(1);
                }

                Console.WriteLine(Thread.CurrentThread.ManagedThreadId + ": Added element to queue.");

            }).Start();

            Console.WriteLine(Thread.CurrentThread.ManagedThreadId + ": Waiting for size change...");

            while (true)
            {
                if (queue.Count > 0)
                {
                    Console.WriteLine(Thread.CurrentThread.ManagedThreadId + ": Noticed size change.");

                    break;
                }
            }




1) Скомплиировать в Release.
2) Запустить без дебагера.

Еще вопросы будут у вас?

Да, будут. Работает ведь.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Название ОС:                      Microsoft Windows 7 Корпоративная
Версия ОС:                        6.1.7601 Service Pack 1 сборка 7601
Изготовитель ОС:                  Microsoft Corporation
Параметры ОС:                     Рядовая рабочая станция
Сборка ОС:                        Multiprocessor Free
Дата установки:                   09.10.2012, 12:57:33
Время загрузки системы:           23.09.2014, 12:38:26
Изготовитель системы:             System manufacturer
Модель системы:                   System Product Name
Тип системы:                      x64-based PC
Процессор(ы):                     Число процессоров - 1.
                                  [01]: Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~2584 МГц
Версия BIOS:                      American Megatrends Inc. 0407, 22.07.2011
Папка Windows:                    C:\Windows
Системная папка:                  C:\Windows\system32
Устройство загрузки:              \Device\HarddiskVolume1
Язык системы:                     ru;Русский
Язык ввода:                       en-us;Английский (США)
Часовой пояс:                     (UTC+04:00) Волгоград, Москва, Санкт-Петербург

Полный объем физической памяти:   8,104 МБ
Доступная физическая память:      1,403 МБ
Виртуальная память: Макс. размер: 16,207 МБ
Виртуальная память: Доступна:     9,136 МБ
Виртуальная память: Используется: 7,071 МБ
Расположение файла подкачки:      C:\pagefile.sys

Ядер 8.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758892
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvskyANA,
Еще раз — релиз поставили, дебагер отключили? Если не умеете, то скомпилируйте экзешник, потом откройте cmd руками, и запустите.Ахаха. Свеном, ну не льсти ты себе так. Карму испортишь.
cdtyjvЕсли все равно раьотает нормально — значит вам повезло. В таком случае вбейте в гугле «.net volatile infinite loop», и почитайте поимеры со стэковерфлоу. После этого ваши сомнения будут развеяны.Если я сюда скопирую пример из SO, то с тебя будут долго смеяться. Пусть, кому надо, сам в тихаря это сделает, чтобы тебе обидно не было.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758897
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79, надо на самом деле другой код компилировать и запускать. Тот, что Свеном привёл, он сам не тестировал.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758900
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У него небось и студии-то под рукой нет. Такой вот тонкий троллинг.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758912
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruЕвгенийВЕсть такие задачи, которые не особо расспараллелишь, например когда для последующего шага нужен результат текущего.
Да что ты говоришь http://codearticles.ru/articles/2492

Я тебе про то, что есть список задач и нельзя выполнить задачу N+1 не зная результата для N и так для всего списка. Дешевый пиар ресурса. Какой ресурс, такой и пиар :)

ЕвгенийВНапиши например "банальный многопоточный" генератор чисел Фиббоначи.
http://forgetcode.com/Java/221-Multithreading-For-Prime-and-Fibonacci-numbers-using-pipes
[/quot]
Ты путаешь Божий дар с яичницей! Запустить алгоритм в отдельном потоке - не значит распараллелить его.
Например сумму элементов массива можно посчитать в 2 потока, 1 считает от 0 до N/2, второй от N/2+1 до N-1, результат обеих складывется.

ЕвгенийВИли там генератор всех возможных программ на C#.
А в чем проблема? [/quot]
Я например не могу, просвети, покажи код?
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758926
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, Arm79
Ок, раз вы сами не в состоянии ... открываем архив, я вам там даже сам экзешник оставил.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758928
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv skyANA, Arm79
Ок, раз вы сами не в состоянии ... открываем архив, я вам там даже сам экзешник оставил.

http://www.sql.ru/forum/actualfile.aspx?id=16626057] Приложенный файл (VolatileHang.rar - 27Kb)

Не знаю, что там у вас, но и ваш exe у меня работает. На слово поверите или тоже заскриншотить?
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758930
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свеном, как говорится: Обосрался - обтекай!
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758935
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79, да троллит он. Добавил строку
Код: c#
1.
2.
3.
Thread.Sleep(1000);

Console.WriteLine(Thread.CurrentThread.ManagedThreadId + ": One second later ...");

И думает, что мы впадём в ступор от четвёртого сообщения в консоли.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758943
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, побаловались, и хватит. Все равно неактуально, ConcurrentQueue наше все.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758949
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Ладно, побаловались, и хватит. Все равно неактуально, ConcurrentQueue наше все.

PS Забыл только добавить, что код у свенома все равно отличается от нужного. Речь шла об объекте и его поле, а свеном пытается показать проблемы с локальной переменной метода. Предлагаю свеному сделать queue полем класса, и снова попробовать свой код
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758955
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Не знаю, что там у вас, но и ваш exe у меня работает. На слово поверите или тоже заскриншотить?
Раз : 16620245

Два :
http://stackoverflow.com/questions/133270/illustrating-usage-of-the-volatile-keyword-in-c-sharp
http://stackoverflow.com/questions/17907885/c-sharp-compiler-optimization-and-volatile-keyword

Три : см. аттач.

Ну а вы можете продолжать писать потоконебезопасный код в предположении, что это чистая теория, которая не имеет отношения к реальности.
...
Рейтинг: 0 / 0
Потокобезопасное использование потоконебезопасных коллекций
    #38758959
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79PS Забыл только добавить, что код у свенома все равно отличается от нужного. Речь шла об объекте и его поле, а свеном пытается показать проблемы с локальной переменной метода. Предлагаю свеному сделать queue полем класса, и снова попробовать свой кодОкей, вот результаты:
1) Статическая переменная - не виснет.
2) Статический враппер внутри которого лежит очередь - виснет.
3) Создать локальную переменную, которой присвоить статическую переменную - виснет.

И таких экспериментов можно уйму сделать. И как вы потом пользователю или коллеге объясните в каких случаях ваша поделка работает, а в каких нет? А никак, так как код сломан, нет гарантии, что он будет работать.
...
Рейтинг: 0 / 0
25 сообщений из 145, страница 4 из 6
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Потокобезопасное использование потоконебезопасных коллекций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]