Как протестировать на потокобезопасность [дубликат]

Вы можете использовать операторы AND или OR, в зависимости от того, что вы хотите, чтобы поиск возвращал.

SELECT title FROM pages WHERE my_col LIKE %$param1% AND another_col LIKE %$param2%;

Оба условия должны совпадать, чтобы запись была возвращена. В качестве альтернативы:

SELECT title FROM pages WHERE my_col LIKE %$param1% OR another_col LIKE %$param2%;

Если какое-либо предложение совпадает, запись будет возвращена.

Для получения дополнительной информации о том, что вы можете делать с запросами MySQL SELECT, попробуйте документацию .

15
задан Rob Wells 5 June 2009 в 12:45
поделиться

4 ответа

Вы можете использовать несколько хороших инструментов для проверки всех проблем с потоками, таких как скачки данных, взаимоблокировки, остановка потоков и т. Д. Intel-thread-checker - один из таких хороших инструментов.

Вы также можете попробовать, ШАХМАТЫ от Microsoft Research

11
ответ дан 1 December 2019 в 04:10
поделиться

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

Дважды проверьте свои объявления, блокировки, разблокировки, счетчики семафоров и т. Д. И убедитесь, что они имеют смысл.

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

Возьмите несколько человек из холла и проведите «тест на удобство использования в коридоре» (Джоэл из Software сказал, что я думаю ?). Как правило, люди, не имеющие представления о том, что делает / о чем ваша программа, смогут легко ее взломать.

5
ответ дан 1 December 2019 в 04:10
поделиться

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

Может быть, вы можете посмотреть PNUnit - хотя, вероятно, он немного отличается от того, что вы ищете. Авторы говорят, что построили это потому, что «нам нужно было смоделировать сотни клиентов на одном сервере».

2
ответ дан 1 December 2019 в 04:10
поделиться

код grep для вызовов подпрограмм многопоточности. Если таковые обнаружены, провалите тест, так как ваш код содержит ошибки многопоточности.

Если он прошел, расширьте поиск до тех частей библиотек, которые вы используете, до тех пор, пока он не выйдет из строя или (что маловероятно) окажется поточно-ориентированным (т. Е. однопоточный).

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

-1
ответ дан 1 December 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: