powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Биты, потоки и др.
61 сообщений из 61, показаны все 3 страниц
Биты, потоки и др.
    #39475032
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, есть код, в котором один поток присваивает переменной случайные чётные значения, а другой - случайные нечётные значения. Верное ли, что если переменная типа int, использовать обёртку atomic необходимости нет, а если float или double, то надо?
Почему объекты int сравниваются между собой точно, а float или double уместно сравнивать с учётом допустимой погрешности, ведь в каждом случае достаточно сравнивать соответствующие биты?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475046
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO жестокий вопрос, точнее два жестоких вопроса

1) фиолетово, что для int, что для float. double. Т.к. все пытаются только присвоить и никто не пытается ничего прочитать, то, что присваивать четные значения, что нечетные - одно фиолетово. Просто преобразование электронов в температуру воздуха в комнате, где стоит системный блок. При чем тут atomic совершенно не понятно.

2) одинаково фиолетово, если работать с float как с набором битов

Код: sql
1.
2.
3.
4.
b=a;
if (a == b ) {
  println('Hello world!');
}



будет работать вне зависимости от того, float или int. А вот математические вычисления, точно работать с плавающей точкой НЕ будут.

Код: sql
1.
2.
3.
4.
a=10 / 3 ;
if (a == 3 ) {
  println('Hello world!');
}



с int работать будет, а с float уже нет )))
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475053
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev1) фиолетово, что для int, что для float. double. Т.к. все пытаются только присвоить и никто не пытается ничего прочитать, то, что присваивать четные значения, что нечетные - одно фиолетово. Просто преобразование электронов в температуру воздуха в комнате, где стоит системный блок. При чем тут atomic совершенно не понятно.

Хорошо, не чётные/нечётные, а значения, в последних 5 битах которых стоят единицы для первого потока (остальные биты случайны) и значения, у которых на тех же местах стоят нули для второго потока. Затем потоки прерываются. После завершения работы потоков по присвоению значений одной и той же переменной у int на последних 5 битах будут стоять только нули или только единицы (насколько я понял). У double или float тоже будут на последних 5 битах либо нули, либо только единицы?

Про сравнение: по-моему,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
int main() {
    int i1 = 1; 
    int i2 = 1;
    if (i1 == i2) printf("int equal"); //правильно

    float f1 = 1f; 
    float f2 = 1f;
    if (f1 == f2) printf("float incorrect"); //неправильно
    if (abs(f1 - f2) < 0.0000001f) printf("float equal correct"); //правильно

    double d1 = 1.0; 
    double d2 = 1.0;
    if (d1 == d2) printf("double incorrect"); //неправильно
    if (abs(d1 - d2) < 0.0000001) printf("double equal correct"); //правильно

    return 0;
}



В тех строках, где неправильно (наверное) сравниваются float и double печать будет происходить не всегда. Или я ошибаюсь?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475059
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoПосле завершения работы потоков по присвоению значений одной и той же переменной у int на последних 5 битах будут стоять только нули или только единицы (насколько я понял). У double или float тоже будут на последних 5 битах либо нули, либо только единицы?

И то и то атомарный тип процессора (intel). Почему поведение для int должно отличаться от поведения для float - лично мне совершенно не понятно

Насколько такая операция безопасна и документирована - я не знаю, не спец по процессорам и многозадачности в таком сферическом вопросе. Подозреваю, обработка все равно будет идти по cache line, т.ч. что int, что double будет глубоко пофиг. Но подозреваю, точно не знаю. Ссылку на доку дать не готов.

ayvangoпечать будет происходить не всегда. Или я ошибаюсь?
Я сильно сомневаюсь, что кто-то специально добавлял генератор случайных чисел в команду присваивания ))) Но разумеется, все зависит от разработчиков компилятора, их воображения и чувства юмора )))
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475062
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvango, у тебя какая-то каша в голове.

Атомарность это прочитать-изменить-записать. atomic именно это гарантирует для int/float/double и т.д., т.е. между чтением и записью исходное значение не изменилось.

Про точность float/double и почему их нельзя сравнивать на == читай гугл.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475074
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е., atomic нужен только для того, чтобы учесть изменения, вносимые каждым потоком (когда оба они выполняют, нампример, операцию сложения с константой). А если один поток присваивает переменной случайное значение, большее 100, а другой значение, меньшее 100, то никакие atomic не нужны?

Что тогда имеется ввиду в фразе "int - атомарный тип, а double таковым не является" ?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475082
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoТ.е., atomic нужен только для того, чтобы учесть изменения, вносимые каждым потоком (когда оба они выполняют, нампример, операцию сложения с константой). А если один поток присваивает переменной случайное значение, большее 100, а другой значение, меньшее 100, то никакие atomic не нужны?
Если тебе пофиг что в итоге запишется то не нужны.

ayvangoЧто тогда имеется ввиду в фразе "int - атомарный тип, а double таковым не является" ?
Откуда эта фраза?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475085
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Откуда эта фраза?
Наверное, что-то напутал.
Думал, что принципиальные различия у int и double имеются.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475087
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoЧто тогда имеется ввиду в фразе "int - атомарный тип, а double таковым не является"?

Спроси у её автора. Скорее всего - отсутствие/наличие "thorn read". У Интеля его нет ни
для int ни для double (при должном выравнивании).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475090
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoОткуда эта фраза?
Наверное, что-то напутал.
Думал, что принципиальные различия у int и double имеются.
Все что укладывается в одну команду асма - атомарно. Присвоение значения int/float/double это одна команда, т.е. прерывание потока может произойти или до или после, но не в середине.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475101
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TВсе что укладывается в одну команду асма - атомарно. Присвоение значения int/float/double это одна команда, т.е. прерывание потока может произойти или до или после, но не в середине.
нездоровый тезис
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475102
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TВсе что укладывается в одну команду асма - атомарно.

Всё несколько усложняется когда приходит многопроцессорность.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475103
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvango, float, это 4 байта, double - 8 байт. Для процессора Intel совершенно фиолетово, какими типами данных оперирует компилятор C++ и он с одинаковым успехом командой "lock xchg" запишет хоть long, хоть float по указанному адресу памяти. Если не знаком с inline-ассемблером, ничто не мешает использовать WINAPI Interlocked функции, к примеру:
Код: plaintext
1.
InterlockedExchange(reinterpret_cast<long*>(&myFloat), 1);
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475115
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TВсе что укладывается в одну команду асма - атомарно.Нет, не атомарно.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475116
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю что среди нормальных овец найдется одна паршивая.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475134
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475209
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилDima TВсе что укладывается в одну команду асма - атомарно. Присвоение значения int/float/double это одна команда, т.е. прерывание потока может произойти или до или после, но не в середине.
нездоровый тезис
Я к тому что в результате одновременного вызова из нескольких потоков
Код: plaintext
1.
x = ...;


в x всегда будет значение записанное одним из потоков, а не комбинация из части байтов от одного потока и части от второго.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475220
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

про выравнивание забываешь, из-за него и может
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475253
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЯ к тому что в результате одновременного вызова из нескольких потоков
Код: plaintext
1.
x = ...;

в x всегда будет значение записанное одним из потоков, а не комбинация из части байтов от одного потока и части от второго.Нет! Там всегда будет то значение, которое каким-либо образом попало в кэш обратной (отложенной) записи ядра процессора. В данном случае, там будет значение, записанное ядром в свой собственный кэш.
В реальности всё гораздо сложнее - система кэширования процессора оперирует блоками отображения на память. Величина блока -
величина не константная и зависит от модели процессора. На время выполнении операции чтения/записи с памятью, системная шина блокируется и данные из кэша ядра синхронизируется с памятью, что обеспечивает атомарность переноса данных из кэша в память и обратно.
MFENCE and LFENCE Micro-Architectural Implementation Method and System
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475319
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ayvangoПочему объекты int сравниваются между собой точно, а float или double уместно сравнивать с учётом допустимой погрешности, ведь в каждом случае достаточно сравнивать соответствующие биты?


...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475821
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в огороде бузина, а в Киеве - дядька...
ты хотя бы определился бы, о каком языке программирования речь...


ayvangoДопустим, есть код, в котором один поток присваивает переменной случайные чётные значения, а другой - случайные нечётные значения. Верное ли, что если переменная типа int, использовать обёртку atomic необходимости нет, а если float или double, то надо?



скорей всего, , неверно.



ayvangoПочему объекты int сравниваются между собой точно, а float или double уместно сравнивать с учётом допустимой погрешности, ведь в каждом случае достаточно сравнивать соответствующие биты?


это совсем другая история. int точный тип данных, а float , double - неточные, их в принципе
сравнивать бессмысленно.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39475922
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivayvango....ведь в каждом случае достаточно сравнивать соответствующие биты?

это совсем другая история. int точный тип данных, а float , double - неточные, их в принципе
сравнивать бессмысленно.
не очень понятно, о чем же спрашивает автор и откуда он взял эту информацию

если о хранение данных, то что int, что float/double одинаковые последовательности битиков и никто не мешает их сравнивать

если о вычислениях, то тогда float/double точно сравнивать обычно бессмысленно

Видел одну систему, где Primary Key в БД был float. Наверное, в случае Primary Key, сравнивать "с учетом допустимой погрешности" как-то странно. Другое дело, что я хотел бы видеть того архитектора и анал итика который Primary Key сделал float'ом и зачем он это сделал так. Даже на hibernate головного мозга это не списать. Там какое-то другое заболевание. Система была на Delphi написана.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39476503
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если о вычислениях, то тогда float/double точно сравнивать обычно бессмысленно
Именно это я и спрашивал: почему бессмысленно.
Чтобы не плодить темы о потоках: отличается ли чем-то принципиально многопоточное программирование от многопроцессного, кроме разных механизмов синхронизации?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39476525
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoЧтобы не плодить темы о потоках: отличается ли чем-то принципиально многопоточное программирование от многопроцессного, кроме разных механизмов синхронизации?
Отличаются. Каждый процесс имеет свое адресное пространство, поэтому указатель между процессами не передать.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39476626
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отличаются. Каждый процесс имеет свое адресное пространство, поэтому указатель между процессами не передать.
Только этим отличаются?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39476632
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoТолько этим отличаются?Ты на Хабре забанен?
Анатомия программы в памяти
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39476674
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoОтличаются. Каждый процесс имеет свое адресное пространство, поэтому указатель между процессами не передать.
Только этим отличаются?
Хочешь подробностей - читай книги. Например Джеффри Рихтер "Windows via C/C++. Программирование на языке Visual C++"
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39476729
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoИменно это я и спрашивал: почему бессмысленно.
....
Просто возьми и исправь мой пример, который работает с int, что бы он корректно работал с double. А потом, что бы понять, почему же он все равно не работает... начни ломать себе мозг разными представленными чисел в 10 и 2'ой системе счисления и разными бесконечными дробями в этих двух системах:

Код: sql
1.
2.
3.
4.
5.
double a;
a=(double)10.0 / (double)3.0 ;
if (a == 3 ) {
  println('Hello world!');
}


С чем нужно сравнить a, что бы понять, что строчкой выше 10 делили на 3 ?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477043
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джеффри Рихтер "Windows via C/C++. Программирование на языке Visual C++"
rdb_dev Анатомия программы в памяти
Спасибо за ссылки, хабр просмотрел, книгу пролистал, в книге перессказ функций WINAPI.
Правильно я понял, что даже у C++17 отсутствует возможность управления многопроцессностью, поскольку тут уже играют роль особенности ОС, поэтому приходится пользоваться присущими ОС функциями (WINAPI для Windows)?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477044
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevС чем нужно сравнить a, что бы понять, что строчкой выше 10 делили на 3 ?
Не знаю, с чем, я лишь спрашивал, почему проверки на равенство для int и double разные
Код: plaintext
1.
2.
i1 == i2; // для int
abs(d1 - d2) < 0.00000001; // для double
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477050
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoя лишь спрашивал, почему проверки на равенство для int и double разные


Потому что не все диапазоны вещественных чисел представимы в точном виде.

Код: plaintext
1.
2.
3.
4.
5.
6.
double d;

for (d = 0; d < 1; d += 0.1)
    std::cout << d << std::endl;

std :: cout << std::boolalpha << (d == 1) << std::endl;



Казалось бы, должно вывестись 10 чисел и после выполнения цикла значение d должно быть 0.9.
Однако выводится 11 чисел. В конце единица. Стало быть d == 1? Но нет! Сравнение с единицей выдаёт false!
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
false


Если теперь установить большую точность вывода, результат станет понятным (надеюсь):

Код: plaintext
1.
2.
3.
4.
for (d = 0; d < 1; d += 0.1)
    std::cout << std::fixed << std::setprecision(16) << d << std::endl;

std :: cout << std::boolalpha << (d == 1) << std::endl;



По ходу вычислений накопилась погрешность и в конце d вовсе не единица.

0.0000000000000000
0.1000000000000000
0.2000000000000000
0.3000000000000000
0.4000000000000000
0.5000000000000000
0.6000000000000000
0.7000000000000000
0.7999999999999999
0.8999999999999999
0.9999999999999999
false
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477104
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petalvik,
Кажется, понял. Сравнивать можно как угодно, только из-за накапливаемой погрешности результаты, одинаковые с точки зрения арифметики, могут оказаться различными в зависимости от последовательностей математических операций, в ходе которых были получены результаты, поэтому надо указывать приемлемую точность, но и она не спасёт, если результаты разные с точки зрения арифметики, но вписываются в указанную погрешность.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477124
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangopetalvik,
Кажется, понял. Сравнивать можно как угодно, только из-за накапливаемой погрешности результаты, одинаковые с точки зрения арифметики, могут оказаться различными в зависимости от последовательностей математических операций, в ходе которых были получены результаты, поэтому надо указывать приемлемую точность, но и она не спасёт, если результаты разные с точки зрения арифметики, но вписываются в указанную погрешность.

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

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

Даже в бухгалтерии, есть специальные правила и даже специальные счета для отслеживания ошибок вычисления. Т.ч. там тоже, никаких проблем нет, если не изобретать велосипед, а спросить у человека, разбирающегося в бухгалтерии, что с этим принято делать в конкретном случае. Ну и желательно для денег float не использовать, а использовать BCD.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477126
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

Хорошо, с погрешностями разобрались. А нижеприведенное утверждение верно?

Правильно я понял, что даже у C++17 отсутствует возможность управления многопроцессностью, поскольку тут уже играют роль особенности ОС, поэтому приходится пользоваться присущими ОС функциями (WINAPI для Windows)?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477129
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoА нижеприведенное утверждение верно?

Нижеприведённое утверждение - бессмысленный набор слов, который невозможно подтвердить или
опровергнуть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477130
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пора заводить под С++17 отдельный форум.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477131
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, как без помощи функций ОС в С++ можно получить универсальный (независимый от ОС, хотя бы для основных ОС) доступ к разделяемой памяти или к др. методам межпроцессного взаимодействия?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477136
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Команда printf это с "помощью ф-ций ОС" или нет?

Хорошо, как без помощи функций ОС...
Легко

1. Пишите программу на С, компилируете ее
2. Каким-то образом создаете бинарный образ для записи во flash ПЗУ материнской платы
3. Перегружаете компьютер... и ву а ля... все работает без помощи ОС !!!

Разумеется, перед этим хорошо бы где-то достать документацию по программированию BIOS для Вашей материнской платы. Где это сделать, я не знаю. Ни разу таким не интересовался.

Для старых компьютеров, типа IBM PC/XT с 8086, 8088 , 8186 процессором... можно было просто собрать .COM файл, купить специальное устройство "программатор", купить микросхему ПЗУ, записать туда файл, разобрать компьютер и заменить микросхему.

На современных компьютерах, все и проще (BIOS во Flash) и сложнее. Ни фига не понятно, где достать документацию и сколько документации нужно прочитать, что бы корректно включить современный процессор и материнскую плату в работу при включении компьютера ))

Ну и желательно, запастись парой десятков материнских плат для тестирования... боюсь, после таких экспериментов, при отладке, материнскую плату будет проще выбросить и взять новую )))
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477139
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoПравильно я понял, что даже у C++17 отсутствует возможность управления многопроцессностью, поскольку тут уже играют роль особенности ОС, поэтому приходится пользоваться присущими ОС функциями (WINAPI для Windows)?Чтобы правильно понять и не задавать подобные глупейшие вопросы, тебе, сначала, надо разобраться с тем, как работает процессор, что такое ассемблер и чем ассемблер отличается от C++.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477140
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoкак без помощи функций ОС в С++ можно получить универсальный (независимый от ОС, хотя бы
для основных ОС) доступ к разделяемой памяти или к др. методам межпроцессного взаимодействия?

Ты не поверишь, но без ОС процессов не бывает. Зря ты отказался читать Рихтера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477141
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

имелся ввиду именно универсальный доступ для большей части популярных ОС. Например, если бы способы работы с разделяемой памятью и соответствующие функции для неё являлись общими для Windows, Linux и других систем, то их бы, пожалуй, интегрированы в C++. Но они не интегрированы, значит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
Поправь, если ошибаюсь.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477142
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevКаким-то образом создаете бинарный образ для записи во flash ПЗУ материнской платы
зачем так жестоко, достаточно на диск/карту памяти записать
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477143
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoзначит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
полно такого кода. условной компиляцией достигается.три-четыре системы поддержать не особо сложно при наличии должной квалификации
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477144
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилполно такого кода. условной компиляцией достигается.
Это уже не универсальный код.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477145
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoИзопропилполно такого кода. условной компиляцией достигается.
Это уже не универсальный код.
с точки зрения бизнеса - универсальный
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477146
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoDimitry Sibiryakov,

имелся ввиду именно универсальный доступ для большей части популярных ОС. Например, если бы способы работы с разделяемой памятью и соответствующие функции для неё являлись общими для Windows, Linux и других систем, то их бы, пожалуй, интегрированы в C++. Но они не интегрированы, значит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
Поправь, если ошибаюсь.
Ошибаешься.

MS Visual C последних версий, конструкции для автоматического распараллеливания вычислений содержит.

Просто язык C, от Корниган и Ричь, нет. Просто было не нужно. Они такими глупостями не страдали.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477147
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoDimitry Sibiryakov,

имелся ввиду именно универсальный доступ для большей части популярных ОС. Например, если бы способы работы с разделяемой памятью и соответствующие функции для неё являлись общими для Windows, Linux и других систем, то их бы, пожалуй, интегрированы в C++. Но они не интегрированы, значит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
Поправь, если ошибаюсь.
Такие попытки предпринимались. Универсализм старых ЯП достигался за счет т.н. пре-процессора.
Ты писал код с проверками типа:
Код: plaintext
1.
#ifdef _WIN32


Позже, за счет библиотек, таких как Boost достигли большего универсализма.

Вообще в погоне за "универсализмом" были созданы платформы и соотв ЯП для них.
Если вы сильно хотите этого то вам лучше оставить С++ в покое.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477149
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
Если вы сильно хотите этого
Какие ЯП в порядке убывания "качества" тогда посоветуете?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477150
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
Если вы сильно хотите этого
Какие ЯП в порядке убывания актуальности и "качества" тогда посоветуете?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477152
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы писал код с проверками типа:
#ifdef _WIN32
Позже, за счет библиотек, таких как Boost достигли большего универсализма.

Те же проверки просто замели под коврик. Разницы никакой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477154
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangomayton,
Если вы сильно хотите этого
Какие ЯП в порядке убывания актуальности и "качества" тогда посоветуете?
java и python - устроят?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477156
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoНапример, если бы способы работы с разделяемой памятью и соответствующие функции для неё являлись общими для Windows, Linux и других систем, то их бы, пожалуй, интегрированы в C++. Но они не интегрированы, значит, нет такого C++ кода, который бы работал с межпроцессным взаимодействием вне зависимости от ОС.
Поправь, если ошибаюсь.Они и так общие и давно "интегрированы" в С++ библиотеке boost . Что тебе еще надо?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477158
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangomayton,
Если вы сильно хотите этого
Какие ЯП в порядке убывания актуальности и "качества" тогда посоветуете?
Я не знаю такой шкалы.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477160
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Мальчики. К порядку. Буду банить
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477162
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoКакие ЯП в порядке убывания актуальности и "качества" тогда посоветуете?Тот, что ближе к языку процессора - машинным кодам, тот и актуальнее - ассемблер (язык мнемоник машинных кодов).
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477164
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМодератор: Мальчики. К порядку. Буду банить
Какого х ?

Или может ты скажешь что пассаж про автор с разделяемой памятью....для Windows, Linux и других систем... не бред сивой кобылы?
И найдешь тогда определение, что же это за память такая, разделяемая такая между ОС.

Предлагаю просто закрыть/удалить топик, как бессодержательный
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477170
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglне бред сивой кобылы?
И найдешь тогда определение, что же это за память такая, разделяемая такая между ОС.
обычный сферический конь в вакууме
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477195
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvango Джеффри Рихтер "Windows via C/C++. Программирование на языке Visual C++"
rdb_dev Анатомия программы в памяти
Спасибо за ссылки, хабр просмотрел, книгу пролистал, в книге перессказ функций WINAPI.
Правильно я понял, что даже у C++17 отсутствует возможность управления многопроцессностью, поскольку тут уже играют роль особенности ОС, поэтому приходится пользоваться присущими ОС функциями (WINAPI для Windows)?


ты понял неправильно.
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477196
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangopetalvik,
Кажется, понял. Сравнивать можно как угодно, .,..ую погрешность.

не, нифига ты не понял,..
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477197
ayvango
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

а как правильно?
...
Рейтинг: 0 / 0
Биты, потоки и др.
    #39477210
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ayvangoMasterZiv,

а как правильно?

в составе современного С++, 11 го стандарта, уже есть средства использования многозадачности и управления разделяемой памятью.
Заголовок <threads>
...
Рейтинг: 0 / 0
61 сообщений из 61, показаны все 3 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Биты, потоки и др.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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