전역 변수 인 정수형 클럭을 가진 클래스가 0으로 초기화되었습니다. 스레드를 시작하는 몇 개의 스레드 생성자에게 'clock'을 전달합니다. 그것은 'clock'이 스레드 내에서 볼 수있는 증가분 인 것처럼 보이지만 호출 프로세스에서 'clock'은 항상 0입니다. Integer가 객체이고 객체가 참조로 전달 되었기 때문에 'clock'의 변경 사항을 볼 수 있습니다. 어디에나. 그렇지 않은가요?쓰레드로 참조로 정수 전달하기
답변
를 사용하여 변경 가능한 Integer
의 래퍼를 만드는 것입니다. 원자 적으로 갱신 될 수있다
int
값. 원자 변수의 특성에 대한 설명은java.util.concurrent.atomic
패키지 스펙을 참조하십시오.AtomicInteger
은 원자 적으로 증가하는 카운터와 같은 응용 프로그램에 사용되며Integer
대신 사용할 수 없습니다. 그러나이 클래스는Number
을 확장하여 숫자 기반 클래스를 처리하는 도구와 유틸리티를 통해 일관된 액세스를 허용합니다.
내가 모르는 다른 도서관이 존재했다. –
도서관이 아닙니다. 그것은 Java SE의 일부입니다. –
Integer
이 불변의 개체이므로 다른 스레드에서 해당 값을 변경할 수 없습니다. 그리고 스레드에서 사용할 때 final
으로 선언해야하므로 변수를 재 할당 할 수 없습니다.
이 주위에 방법은 AtomicInteger
대신의 Integer
class MutableInteger {
private int integer;
synchronized void setInteger(int integer) { ... }
synchronized int getInteger() { ... }
}
- 1. 참조로 벡터 전달하기
- 2. void foo (int & x) -> 루비? 참조로 정수 전달하기?
- 3. 참조로 정수 전달
- 4. customcursoradapter에서 액티비티로 정수 전달하기
- 5. boost :: bind에서 참조로 벡터 전달하기
- 6. 컨트롤러에서 뷰 mvc로 정수 전달하기
- 7. 스레드가 이미 생성 된 후 액티비티에서 쓰레드로 값 전달하기
- 8. SWIG 및 Python을 사용하여 참조로 bool 전달하기
- 9. PHPUnit에서 조롱 할 때 콜백에서 참조로 전달하기
- 10. ctypes 및 함수에 대한 참조로 전달하기
- 11. 참조로 AJAX JSON 콜백 매개 변수 전달하기
- 12. 참조로 매개 변수를 전달하기 위해 gobject.idle_add()를 얻으려면 어떻게해야합니까?
- 13. 오래된 C 코드를 쓰레드로 변환하기
- 14. 정수 참조로 Perl 변수 참조를 다른 변수로 만들 수 있습니다
- 15. 수천 개의 레코드를 쓰레드로 전달하는 방법은 무엇입니까?
- 16. 안드로이드 타이머 앱을 쓰레드로 구성하는 방법은 무엇입니까?
- 17. Spring 트랜잭션을 다른 쓰레드로 전파하는 방법은 무엇입니까?
- 18. Nutch Fetcher가 N 개의 매달린 쓰레드로 중단합니다.
- 19. gcc에서 쓰레드로 C 프로그램을 컴파일하는 방법은 무엇입니까?
- 20. 정지, 죽은, 쓰레드로 무엇을해야합니까? Alive == False
- 21. 멀티 쓰레드로 구현하는 가장 좋은 방법
- 22. 자바에서 3 개의 쓰레드로 변수에 접근하기
- 23. AIDL을 사용하여 참조로 전달하는 방법?
- 24. Visual Basic ByRef 정수
- 25. 클래스의 정수 참조 지정
- 26. PHP5에서 참조로
- 27. SQL2008 spams로 system.guid의리스트 전달하기 sproc
- 28. 정수 배열의 정수 수정
- 29. 함수 전달하기
- 30. onOptionsItemSelected에 변수 전달하기
Java는 * 값에 의한 전달 * - 구체적으로 * 참조 값 *입니다. 그것과는 별도로, 'Integer' (사실, 모든 autobox 클래스들)는 불변입니다; 너는 그것을 바꿀 수 없다. –