Thắc mắc về async và await

Chào cả nhà !
Mình ví dụ 1 controller dùng asyncawait

    public async Task<IActionResult> DeleteProduct(int id)
    {
        Db.Product.Remove(user);
        await _context.SaveChangesAsync();

        return NoContent();
    }

Cho em hỏi async và await trong hàm này có tác dụng đối với 1 user (1 client đang thực hiện nhiều thao tác xóa) hay đối với cả web (1000 user đang truy cập và 1000 user gọi hàm xóa này cùng lúc).
Em cảm ơn.

Về async thì cần nhớ là nó chạy trên single thread. Điều này có nghĩa là với số thread trong thread pool hạn chế thì server có thể phục vụ nhiều client hơn. Vd thread pool có 100 thread thì cùng lúc phục vụ tối đa 100 client, thằng 101 phải chờ. Tuy nhiên nếu xài async thì khi client gọi server thực thi lệnh delete nó sẽ check lệnh đã thực thi xong chưa(vì phải chờ database thực thi nữa), nếu chưa xong thread đó sẽ được 1 client khác sử dụng, do đó server phục vụ được nhiều client hơn

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?