편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
51번째 줄: | 51번째 줄: | ||
</source> | </source> | ||
Rust에서 기본 변수의 상태를 변경불가로 둔 것은 멀티 프로세싱과 메모리 안정성에 중요도를 둔 | Rust에서 기본 변수의 상태를 변경불가로 둔 것은 멀티 프로세싱과 메모리 안정성에 중요도를 둔 결과입니다. 멀티프로세싱에서 제일 문제가 되는 것은 여러 스레드에서 한 데이터를 접근할 때입니다. 기본 상태를 변경 불가로 두면, 데이터의 수정을 제한 시킬 수 있으므로, 스레드의 데이터 변경에 의한 문제를 미리 방지할 수 있고, 최적화 또한 쉽게 이룰수 있으며, 문제가 생기더라도 확인해야 하는 구간이 적어집니다. | ||
=== 메모리의 소유권한 === | === 메모리의 소유권한 === | ||
60번째 줄: | 60번째 줄: | ||
C++의 메모리 관리와 자바의 메모리 관리는 각각 장단점이 있다. 이러한 장단점을 절충한 Rust의 메모리 관리의 사상은 '''메모리에 소유권을 주고, 소유권을 컴파일할 때 감시한다'''이다. | C++의 메모리 관리와 자바의 메모리 관리는 각각 장단점이 있다. 이러한 장단점을 절충한 Rust의 메모리 관리의 사상은 '''메모리에 소유권을 주고, 소유권을 컴파일할 때 감시한다'''이다. | ||
Rust의 모든 데이터는 | Rust의 모든 데이터는 소유자(함수)가 있으며, 기본적으로 데이터의 소유권은 한 곳에만 있다. 만약에 소유권을 빌렸다면 소유자(함수)가 끝나기 전에 반환해야 한다. | ||
우선 러스트에서는 변수를 어떤 함수로 인자로 넘길 경우, 변수의 소유권이 해당 함수로 넘어가며, 원래 있던 함수에서는 사용이 불가능 합니다. 이 말을 이해하려면 C++언어와 비교하면 됩니다. | |||
C++ | |||
<source lang="cpp"> | <source lang="cpp"> | ||
#include<iostream> | #include<iostream> | ||
89번째 줄: | 94번째 줄: | ||
} | } | ||
</source> | </source> | ||