Có thể tạo một số tập hợp con của các chủ đề (ví dụ: từ ThreadPool cụ thể) phân bổ bộ nhớ từ heap riêng không? Ví dụ. hầu hết các chủ đề được phân bổ từ đống chia sẻ thông thường, và vài luồng công nhân được phân bổ từ từng vùng riêng lẻ (1: 1 cho mỗi luồng).Phân bổ heap theo chủ đề cụ thể
Mục đích là để đảm bảo thực hiện an toàn mã trong môi trường chung - công nhân bình thường là không quốc tịch và đang chạy trên chuỗi riêng biệt, xử lý một yêu cầu không được tiêu thụ quá 4MB.
Cập nhật # 1 Nhưng tại sao bạn lại lo lắng về "thực thi an toàn" và tăng tiêu thụ hàng đống không thể đoán trước?
Vấn đề là lưu trữ an toàn mã java bên thứ ba tùy ý trong quá trình của tôi. Một khi các điểm là không nhận được "Out of Memory" cho toàn bộ quá trình của tôi vì lỗi trong mã của bên thứ 3.
Update # 2 Re: Tính đến hạn chế sử dụng bộ nhớ cho mỗi thread, trong Java ngôn ngữ nó không thể
Theo điều tra của tôi trước khi tôi đã đăng câu hỏi này quan điểm của tôi là như nhau, tôi chỉ là hy vọng tôi đang thiếu một cái gì đó.
duy nhất giải pháp khả thi thay thế cho việc sử dụng hợp cụ thể của tôi như là tôi thấy ngay bây giờ là ...
1) How much memory does my java thread take? - ca khúc chủ đề sử dụng bộ nhớ trong một số chủ đề đốc và chấm dứt chủ đề xấu
2) Run Java code on my own JVM - Vâng, có thể. Bạn có thể tải xuống triển khai mã nguồn mở JVM, sửa đổi nó ... :)
Không, toàn bộ ý tưởng đằng sau chủ đề phải nhẹ nhất có thể, vì vậy chúng chia sẻ cùng một đống; nó cũng sẽ làm cho việc đồng bộ hóa trở nên khó khăn hơn nếu họ cho phép nó.Nhưng tại sao bạn lo lắng về "thực hiện an toàn" và tăng tiêu thụ heap không thể đoán trước? – Viruzzo
Các triển khai JVM điển hình sử dụng bộ đệm phân bổ địa phương luồng (Thread Thread Allocation Buffers - TLABs), trong đó mỗi luồng có một vùng nhỏ riêng để phân bổ nhỏ mà không tốn nhiều chi phí an toàn cho luồng. Điều đó không giải quyết sự sẵn có mặc dù. RTSJ có một số công cụ liên quan đến chủ đề và đống, nhưng đó là về độ trễ. –