Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
нативный беспредел
#1
есть волновая система, сеть Петри.

код раз
в чем проблема: при n меньше 30 программа работает корректно. Когда больше - даже не входит в main ( не печатает "start..."). Решение простое - засунуть в потоки:

код два
упустил когда читал этот момент и помогите дать точный ответ, почему главный процесс сразу впадает в режим ожидания с n>30 при явном вызове.
//Как я думаю: при компиляции создаются инструкции, что уже известно, допустим, 100 итераций по 9*X*Y*Z WaitForSingleObject и это глушит процесс при запуске. Confusedlowpoke:

сеть Петри для красоты поста
Ответ
#2
Код:
channel (int nn): size(nn)
        {
            buf = new double[nn];    
            countr=0; countw=0;
Просто гениальный код. Для чего нужны инициализаторы, видимо, автор не знает.

Какая-то странная у Вас зависимость получается. При входе в main приложение сразу выводит в поток текст, работает это не в треде, должно вывестись при любом N, по идее. Пробовали выпиливать свои циклы из main?
// aka Deft
Ответ
#3
Циклы выпилены в потоки под вторым спойлером. Программа работает верно. В том то и дело, что в любом случае должно вывести текс при входе в main, но не выводит, следовательно до этого уже ловит wait или что-то еще=\
Ответ
#4
Потоки используют буфферизацию. Так что вывод может произойти не через 0.01мс, а чуть позже.
WaitForSingleObject не глушит процесс, эта вещь предназначена для ожидания своих тредов. Не уверен в корректности кода в первом спойлере.
Вы дебажили свое приложение? Запустите в тред какую-нибудь 1 функцию и посмотрите, что происходит в дебаге.
// aka Deft
Ответ
#5
офф
Ответ
#6
вопрос решен. Почему то вылетело из головы, что WaitForSingleObject в цикле останавливает текущую нить, т.е. main, и т.к. счетчик семафора равен нулю - впадает в INFINITE. Confusedlowpoke:

ps: зато кто не знал о Петри - возможно узнаетSmile
Ответ
#7
Метки как всегда огооонь :redlol:
Мы всё сделаем металлом! Чернее чернейшей черноты бесконечности! © Nathan Explotion
Работаю с Aion Java-emu, любой версии. skype: alexsiuss1
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)