2009-04-18 37 views
6

Tôi đã tạo câu hỏi SO khoảng naming conventions for threads một lúc trước. Câu hỏi là một cái gì đó như, "Làm thế nào bạn nên đặt tên cho một sợi?"Tên chủ đề - khi nào bạn cần biết chúng?

Nhìn lại, tên chỉ là vấn đề nếu bạn phải đọc tên của chủ đề.

Bạn có thể cung cấp các ví dụ thực tế về thời điểm bạn phải kiểm tra các chủ đề và phân biệt giữa các chủ đề, dựa vào tên của chúng không? Đây là nền tảng/kiến ​​thức bất khả tri.

Làm thế nào (trong môi trường nào), bạn đã làm điều này?

Đặt một cách khác, trong trường hợp nào bạn phải giải quyết vấn đề và phải xem xét chủ đề theo tên và cách bạn đã thực hiện việc này?

+4

thường là tên chuỗi thực sự chỉ hữu ích cho việc ghi nhật ký và gỡ lỗi. –

+0

Được rồi, vậy cụ thể, bạn có sử dụng tên luồng để ghi nhật ký hoặc gỡ lỗi không? Cơ chế ghi nhật ký hoặc gỡ lỗi nào cho bạn biết tên của luồng và cách đó giúp bạn? – core

+0

Đây không phải là nền tảng bất khả tri. Bạn không thể đặt tên chủ đề trong Windows. –

Trả lời

3

Khi tìm kiếm rò rỉ kết nối trong java, đôi khi rất hữu ích khi theo dõi một đối tượng trở lại để xem chuỗi được tạo bởi. Trong trường hợp của chúng tôi, đó là chuỗi Finalizer. Điều này dẫn chúng tôi đến kết luận rằng mọi thứ đã nhận được rác thải thu thập, nhưng không được hoàn thành đủ nhanh. tức là một loạt các công cụ đang chờ để được hoàn thành, tất cả được thực hiện trong một chủ đề.

Do đó, chúng tôi đã học được một bài học về việc không dựa vào Hoàn thành.

+1

Có, không bao giờ dựa vào hoàn thiện hoặc bất kỳ loại destructor nào để dọn sạch các tài nguyên quan trọng! –

0

Khá thường xuyên thực sự hữu ích khi thực hiện các chuỗi luồng của máy chủ sản xuất để xác định nguyên nhân bị treo/chậm. Trong trường hợp này thường có một số lượng lớn các luồng trong các vai trò khác nhau. Trong một ứng dụng java, bạn có thể xem các chủ đề thạch anh và các hồ luồng có thể khác nhau mà một ứng dụng sử dụng để thiết lập các đảm bảo hiệu năng. Có thể cho rằng tên nhóm luồng thường quan trọng hơn tên luồng thực tế, nhưng tên của từng chuỗi chủ đề cũng có thể đáng kể nếu bạn đang cố gắng xác định một chuỗi bị khóa. Kể từ khi các chủ đề thường có một tên cho thấy vai trò của nó, nó giúp để hiểu những gì đang xảy ra.

1

Đôi khi trên các máy chủ ứng dụng Java EE, rất hữu ích khi có thể theo dõi tất cả hoạt động trên một chuỗi đơn, và thường được đặt tên thích hợp bởi hệ thống phụ tổng hợp, ví dụ. 'http-25', 'http-12' v.v.

2

Câu hỏi này hiện được gắn thẻ với 'linux' không có lý do rõ ràng ... dù sao, nếu bạn đang sử dụng Visual Studio, tên luồng xuất hiện trong cửa sổ chuỗi trong trình gỡ lỗi, vì vậy nếu bạn đang gỡ lỗi ứng dụng với hàng tấn chủ đề, tên giúp bạn dễ dàng tìm thấy 'chuỗi bạn quan tâm' trong cửa sổ này trong trình gỡ lỗi.

Tóm lại, tôi chỉ sử dụng nó vì nó tương tác độc đáo với công cụ gỡ rối.

0

Tôi đang sử dụng tên luồng để giúp gỡ lỗi hiệu suất thời gian thực của ứng dụng điều khiển rô bốt đa luồng được viết bằng chuỗi công cụ Orocos. Mỗi thành phần chạy trong một luồng riêng biệt và tôi sẽ viết các kịch bản lệnh shell sử dụng các công cụ có mục đích chung để quản lý các ưu tiên của luồng và lõi chúng chạy trên (và do đó, gián tiếp, chủ đề nào trước các luồng khác và khi nào). Điều tốt đẹp về cách làm theo cách này là bạn có thể điều chỉnh hiệu suất của chương trình trong khi nó đang chạy, điều này đặc biệt hữu ích nếu bạn cũng dựng lên một chỉ số hiệu suất liên tục đầu ra.

Các vấn đề liên quan