Chúng tôi đang chạy vào một vấn đề thú vị mà chúng tôi nhận thấy trong khi thực hiện kiểm tra căng thẳng của hệ thống của chúng tôi. Chúng tôi đang sử dụng log4j (trong JBOSS) rất nhiều cho việc đăng nhập của chúng tôi. Đây là một ví dụ ngây thơ của một số khai thác gỗ, chúng tôi aveLog4j: nó có được đồng bộ hóa cho các cuộc gọi đa luồng không?
void someFunction()
{
Log.info("entered some function");
...
Log.info("existed some function");
}
Bây giờ điều thú vị chúng tôi nhận thấy là nếu chúng tôi khởi động 100 chủ đề chống lại chức năng này; các cuộc gọi Log.info() đang chặn trên mỗi chuỗi .. có nghĩa là thread 2 đang chờ thread1 để kết thúc cuộc gọi "Log.info". Trường hợp chủ đề 100; nó kết thúc chờ đợi khá lâu. Chúng tôi đang sử dụng một tập tin bản ghi logger.
Đây có phải là sự cố đã biết không?
'Nhật ký' là một lớp học? Hoặc một đối tượng kiểu 'Logger'? – Tudor
Nhật ký là đối tượng của kiểu logger thu được từ Loggerfactory – shergill
Ok cảm ơn. Chỉ muốn chắc chắn. Tôi đã đi mặc dù mã nguồn của 'Logger' và thấy rằng thực sự có một phần' đồng bộ 'ở đó. – Tudor