Tacitonitus
Метод 1 лучше по следующим причинам:
1) Вы можете использовать потоки для обработки параллелизма, который, по крайней мере в Windows (вы не указали ОС), является высокоразвитым, надежным и эффективным механизмом для обработки синхронного или асинхронного распределения задач. Ваш метод 2, с другой стороны, должен был бы использовать межпроцессное распределение и связь-не меньше, чем через TCP, - что гораздо более восприимчиво к ошибкам и проблемам, а также является более медленным и ресурсоемким.
2) асинхронный доступ к базе данных с высоким трафиком уже чреват известными проблемами-я где - то читал, что кто - то действительно написал статью, доказывающую, что 100% полностью прозрачной базы данных достичь невозможно,-поэтому добавление TCP к этой смеси, которая имеет свой собственный нетривиальный набор сценариев "что-если", только усугубит сложность, присущую любой ситуации доступа к базе данных с высоким трафиком.
Теоретически единственным недостатком вашего метода 1 является то, что *если* ваша операция когда-либо станет настолько большой, что для обработки нагрузки потребуется несколько машин, вам придется разделить (иначе говоря: порт) весь ваш потоковый "узловой" код на отдельные модули DCOM и реализовать их на отдельных машинах. Это было бы дорого, отнимало бы много времени и вызывало бы огромную головную боль.
Однако в наши дни эта технология (DCOM) довольно устарела. Гораздо более современный, эффективный и эффективный способ "вырастить" серверное программное обеспечение сегодня (для обработки больших нагрузок)-это использование GPGPU, который уже является потоковой технологией, поэтому перенос любого существующего потокового кода на GPGPU будет гораздо проще и экономичнее, чем использование DCOM. Это также можно было бы сделать по частям, в отличие от DCOM, и если бы этим занимались профессионалы, то можно было бы даже реализовать без простоев..
Надеюсь, это поможет..