중요한 섹션이나 유사한 동기화 대안을 포함하지 않는 솔루션을 원합니다. Windows에서 Fiber (사용자 수준 스레드)와 비슷한 것을 찾고 있습니다.동일한 프로세서/코어에서 두 개의 Java 스레드를 강제 실행하는 방법은 무엇입니까?
답변
내 지식으로는이를 달성 할 수있는 방법이 없습니다.
OS가 실행중인 스레드를 관리하고 스케줄러에 따라 리소스를 배포하기 만하면되기 때문입니다.
편집 : 당신의 목표는 당신이 스레드 관리자를 사용하는 것이 좋습니다 시스템에 코어 수를 얻을 것 다른 프로세스를 실행하는 "여분의"핵심을 가지고 있기 때문에
(x)는 다음 산란 특정 시스템의 최대 x-1 스레드. 그렇게하면 예비 코어가 생깁니다.
이전의 문이 계속 적용되므로 OS에서 지정하지 않으면 스레드를 실행할 코어를 지정할 수 없습니다. 하지만 자바로부터.
Java 응용 프로그램이 스레드 선호도 자체를 제어 할 수 있는지 묻는 것으로이 내용을 읽었습니다. Java는 이것을 제어 할 수있는 방법을 제공하지 않습니다. 그것은 호스트 운영 체제의 비즈니스로 취급됩니다.
무엇이든 할 수 있으면 운영체제가 될 수 있으며 일반적으로 스레드 고정에 사용하는 도구가 OS 고유 일지라도 수행 할 수 있습니다. (OS가 자체가 가상화입니다하지만. 나는 그 일을하려고하면 모르는 고정의 두 가지 수준이있다/실용적.)
가모든 관련 핫스팟이있을 나타나지 않습니다 현대 JVM에서의 JVM 스레드 튜닝 옵션.
Rockit JVM을 사용하는 경우 "기본 스레드"(Java 및 OS 스레드간에 1-1 매핑이 있음)와 여러 Java 스레드가 작은 수로 다중화 된 "가는 스레드"중에서 선택할 수 있습니다 OS 스레드. 그러나 AFAIK, JRocket "thin threads"는 32 비트 모드에서만 지원되며 사용되는 OS 스레드 수를 조정할 수 없습니다.
이것은 실제로 Sun 지원 계약 하에서 질문해야하는 질문입니다. 그들은 몇 년 동안 큰 자바 애플리케이션에서 최상의 성능을 얻는 방법을 찾은 사람들이 있습니다.
전체 JVM을 단일 코어에 할당하는 것보다는이 작업을 수행하는 방법이 확실하지 않습니다. 리눅스에서는 taskset 사용할 수 있습니다
http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html
을 나는 당신이 가상화 된 환경 (예를 들어, 버추얼 박스/VM웨어 예) 하나 개의 프로세서에 할당 내에서 JVM을 실행할 수 있습니다 가정,하지만 난 그 가져 모르겠어요 당신이 원하는 걸.
- 1. 객관적인 C에서 두 개의 다중 스레드를 동시에 실행하는 방법은 무엇입니까?
- 2. 같은 CPU에서 두 프로세스를 강제 실행하는 방법은 무엇입니까?
- 3. IIS에서 코드를 실행하는 데 동일한 스레드를 사용하는 방법은 무엇입니까?
- 4. Java에서 스레드를 실행하는 가장 좋은 방법은 무엇입니까?
- 5. 다른 코어에서 다른 스레드를 실행하는 방법은 무엇입니까?
- 6. 다른 사용자가있는 동일한 PC에서 두 개의 WebBrowser 인스턴스를 실행하는 방법
- 7. 여러 코어에서 Java 프로그램을 실행하는 방법은 무엇입니까?
- 8. 파이썬 스레드를 독립적으로 실행하는 방법은 무엇입니까? (WinPDB)
- 9. Java : 동일한 동적 라이브러리를 두 개의 스레드 (동일한 JVM의 두 스레드)에로드하십시오.
- 10. 두 개의 스레드를 사용하여 textBox에 쓰기
- 11. VS2008 : 동일한 솔루션에서 두 개의 개별 프로젝트를 실행하는 방법
- 12. 프로젝트 탐색기보기에서 새로 고침을 강제 실행하는 방법은 무엇입니까?
- 13. n 개의 스레드를 생성하는 방법은 무엇입니까?
- 14. 동일한 앱을 실행하는 두 개의 iOS 기기간에 객체를 전송하는 가장 좋은 방법은 무엇입니까?
- 15. 동일한 응용 프로그램에 대해 두 개의 NUnit 콘솔 주자를 병렬로 실행하는 방법은 무엇입니까?
- 16. 동일한 그래프에 두 개의 x 축이 있습니까?
- 17. 의도적으로 해시가 동일한 두 개의 파일을 만드시겠습니까?
- 18. 텍스트가 다른 두 개의 QMenus에서 동일한 QAction을 사용하는 방법은 무엇입니까?
- 19. 패널의 동일한 행에 두 개의 버튼을 추가하는 방법은 무엇입니까?
- 20. Unity Framework : 동일한 인터페이스에서 두 개의 클래스를 인스턴스화하는 방법은 무엇입니까?
- 21. 두 개의 다른 탭에 동일한 컨트롤을 표시하는 방법은 무엇입니까?
- 22. 두 개의 Tbitmaps가 동일한 지 확인하는 가장 빠른 방법은 무엇입니까?
- 23. iReport를 사용하여 동일한 페이지에서 두 개의 보고서를 작성하는 방법은 무엇입니까?
- 24. Ruby에서 동시에 두 개의 스레드를 실행하려면 어떻게해야합니까?
- 25. 서로 죽일 수있는 두 개의 스레드를 사용해야합니까?
- 26. C# 동시에 두 개의 스레드를 실행하십시오.
- 27. 두 개의 동일한 조각 다르게
- 28. 은 두 개의 동일한 선택
- 29. Java 코드에서 Linux 명령을 실행하는 방법은 무엇입니까?
- 30. 동일한 컴퓨터에서 두 개의 루비 스크립트 동기화
왜이 작업을 수행 하시겠습니까? 동시에 실행해서는 안되는 이유는 두 개의 스레드가있는 이유는 무엇입니까? –
mmyers, 같은 코어에서 실행되도록하는 것은 소프트웨어의 동시성과 아무 관련이 없습니다.프로그램은 그 차이를 알지 못할 것입니다. 프로세서를 공유해야하기 때문에 두 스레드에서 작업을 완료하는 데 "오래 걸립니다". – joejoeson
OS가 무엇입니까? 모든 스레드 또는 일부 스레드에 대한 솔루션을 원하십니까? 나는 당신의 응용 프로그램의 하위 집합에 대한 그것의 가능한 것이라고 생각하지 않습니다. – Eric