Не обязательно. Зависит от того, что вы подразумеваете под «безопасностью потоков».
Предположим, например, что они совместно используют Entity Framework, скажем "db", и работают с какой-то таблицей. так как вы назвали свой контроллер "MyController", давайте вызовем этот db.MyTable
Каждый запрос вызывает другой экземпляр MyController. Пока что, поток безопасен. Каждый контроллер создает экземпляр MyEntities db = new MyEntities (); До сих пор нить безопасна. но поскольку db.MyTable имеет тип IEnumerable , они взаимодействуют друг с другом. Предположим, они работают с одним и тем же объектом в базе данных (без блокировок), скажем, db.MyTable [0] - они будут перезаписывать друг друга («последний, кто спасет выигрыши»).
3 пользователя вашего сайта будут иметь три независимых указателя (в стеке), указывающих на одно и то же место (в базе данных). Это не проблема потока. Это проблема блокировки данных.