«thread-safety» 태그된 질문

코드 조각은 여러 스레드에서이 코드를 일관되게 실행할 수있는 방식으로 데이터 구조를 조작하는 경우에만 스레드로부터 안전합니다. 코드는 스레드 안전, 조건부 안전 (상호 배제 필요) 또는 안전하지 않을 수 있습니다 (하나의 스레드에서만 안전하게 사용할 수 있음).

3
스레드 세이프 vs 재진입
최근에 "Malloc 스레드가 안전한가요?" 라는 제목으로 질문을했습니다. , 그리고 그 안에서 "malloc이 재진입 할 ​​수 있습니까?"라고 물었습니다. 나는 모든 재진입이 스레드로부터 안전하다는 인상을 받았습니다. 이 가정이 잘못 되었습니까?



4
Rails에서 Thread.current [] 사용의 안전성
Thread.current해시 (예 : current_user, 현재 하위 도메인 등)에 정보를 저장하는 관행에 대해 상충되는 의견을 계속 받고 있습니다. 이 기술은 모델 계층 (쿼리 범위 지정, 감사 등) 내에서 이후의 처리를 단순화하는 방법으로 제안되었습니다. Rails에서 스레드 변수가 간헐적으로 발생하는 이유는 무엇입니까? Rails 용 API 래퍼에서 Thread.current를 사용하는 대안 Thread.current [] 값과 클래스 …


14
Android-스레드를 중지하는 가장 좋고 안전한 방법
Android에서 스레드를 중지하는 가장 좋은 방법을 알고 싶습니다. AsyncTask대신 사용할 수 있고 cancel()방법 이 있다는 것을 알고 있습니다 . Thread내 상황에서 s 를 사용해야 합니다. 내가 사용하는 방법은 다음과 같습니다 Thread. Runnable runnable = new Runnable() { @Override public void run() { //doing some work } }; new Thread(runnable).start(); 그렇다면 …

3
멀티 스레딩 프로그램이 최적화 모드에서 멈췄지만 -O0에서 정상적으로 실행 됨
다음과 같이 간단한 멀티 스레딩 프로그램을 작성했습니다. static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } 그것은 디버그 모드로 정상적으로 동작 비주얼 스튜디오 나 -O0에서 GC C와 …

3
"휘발성"은 멀티 코어 시스템을위한 휴대용 C 코드로 무엇인가를 보장합니까?
(A)에서보고 한 무리 의 다른 질문 과 그 답변 , 나는 인상 얻을 C에서 "휘발성"키워드가 정확히 무엇을 의미하는지에 대한 더 광범위한 합의가없는합니다. 표준 자체조차도 모든 사람이 그것이 의미 하는 바에 동의 할만큼 명확하지 않은 것 같습니다 . 다른 문제들 중 : 하드웨어와 컴파일러에 따라 다른 보증을 제공하는 것 같습니다. 컴파일러 …

2
스레드 안전 규칙에서 제안한 비 const 인수로 생성자를 복사 하시겠습니까?
레거시 코드에 래퍼가 있습니다. class A{ L* impl_; // the legacy object has to be in the heap, could be also unique_ptr A(A const&) = delete; L* duplicate(){L* ret; legacy_duplicate(impl_, &L); return ret;} ... // proper resource management here }; 이 레거시 코드에서 객체를 "중복"하는 함수는 스레드로부터 안전하지 않으므로 (같은 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.