나는 여기서 (1) X.Org가 멀티스레드가 아니라는 것을 읽었습니다. 인용하다:
그래픽 집약적인 작업을 실행하는 특정 응용 프로그램은 데스크탑을 쉽게 정지시킬 수 있습니다(간단하고 쉽게 재현 가능한 예: Wine에서 Adobe Photoshop 7.0 실행, 충분히 큰 이미지 열기 및 복잡한 필터 적용 - Photoshop이 작업을 완료할 때까지 그래픽 세션이 완전히 사라짐 참조). .
이 문제는 내 컴퓨터에서 자주 발생합니다. Windows에서는(비교해서 죄송합니다) 이런 일이 자주 발생하지 않습니다. GUI는 집중적인 계산 중에도 반응을 유지합니다.
X.Org가 이런 방식으로 설계된 이유는 무엇입니까?
앞으로 이 문제를 해결할 계획이 있습니까(아마도 Wayland, Mir 등과 같은 대안을 사용하여)?
이 문제를 적어도 부분적으로 해결하는 대체 Linux 데스크탑이 있습니까?
답변1
관련 질문:"X.org 소프트웨어의 일부가 멀티스레드로 구성되어 있습니까?"
답변 중 하나를 인용하자면 다음과 같습니다.
ES Raymond의 책에서 저자는 다음과 같이 인용합니다.
X 서버는 초당 수백만 개의 작업을 수행할 수 있지만 폴링/선택 루프를 사용하지 않습니다. 멀티스레딩 구현을 위한 다양한 노력은 좋은 결과를 얻지 못했습니다. 그래픽 서버처럼 성능에 민감한 서버의 경우 잠금 및 잠금 해제 비용이 너무 높습니다. ——짐 게티스
내가 이해한 바에 따르면 클라이언트는 다중 스레드일 수 있으며 구현에 따라 다릅니다. 클라이언트가 다중 스레드가 가능한 Wayland에도 동일하게 적용됩니다.01.org:
클라이언트 라이브러리는 툴킷 이벤트 루프에 잘 통합되고 단일 스레드 및 다중 스레드 환경 모두에서 작동하도록 설계되었습니다.