axe
Ноя. 28, 2008 15:26:26
есть ли возможность выставлять потокам приоритет выполнения?
Андрей Светлов
Ноя. 28, 2008 16:25:58
В самом Питоне, насколько помню, нет. В winapi/pthread есть. Т.е. выкрутиться можно, но не всегда легко.
slav0nic
Ноя. 28, 2008 16:51:21
axe
Дек. 1, 2008 11:19:44
приложение запускается под debian.
slav0nic, посмотрел статью. как понял, там вообще потоков как таковых нет. имитация потоков с помощью генераторов.
у меня используются реальные потоки. хотелось приоритет устанавливать для них
Андрей Светлов
Дек. 1, 2008 14:11:40
axe
Хотел было уже лезть смотреть документацию по pthread, чтобы к твоей дебане прикручивалось.
А потом вспомнил про GIL.
Вывод - оно тебе не надо на самом деле. Установкой приоритета потока самой по себе практически ничего не выиграть (а вот замедлить общую скорость выполнения можно легко). “В лоб” решать не стоит.
ZZZ
Дек. 2, 2008 01:37:58
Андрей Светлов
А потом вспомнил про GIL.
Stackless Python никто не отменял. Если реално важна многопоточность, то лучше использовать его.
Андрей Светлов
Дек. 2, 2008 01:58:50
Так то - вытесняющая мультипоточность. Штука безусловно интересная и полезная - но совершенно для других задач.
ZZZ
Дек. 2, 2008 02:35:10
Ну может быть, спорить не буду, так как плохо знаю теорию темы. Просто тестировал в прошлом году скорость трёх потоков на двух ядрах в CPython и в Stackless – последний выиграл с хорошим отрывом. Если выберу время, покопаюсь на старой машине и выложу тесты с результатами.
А вообще, если бы вы в двух словах описали (у вас это очень хорошо получается!) чем “вытесняющая многовоточность” отличается от любой другой, то я был бы премного благодарен.
Андрей Светлов
Дек. 2, 2008 04:36:35
В двух словах - нереально. Попробовал - не получилось.
Если совсем коротко - либо ты просишь систему явно переключиться на другой поток, либо она делает это переключение сама, никого не спрашивая.
Каждый подход накладывает массу ограничений.
Если нужно - опишу развернуто.
ZZZ
Дек. 2, 2008 05:39:47
Не буду уж отвлекать вас…
Shiza в jabber
виндовс 3.1 помнишь? =)
Если всё верно, то я знаком с этим.