std 라이브러리를 사용하여 응용 프로그램에서 스레드 당 메모리를 예약 할 수 있습니까? 몇 가지 마이크로 스레드를 만들고 싶습니다. 스레드 당 메모리를 예약하는 방법을 알고 싶습니다. 가능한 경우 스레드 용 메모리를 할당하는 것이 가장 좋습니다.C++의 마이크로 스레드
0
A
답변
2
당신이 모든 스레드하지만 같은 포인터와 다른 몇 가지 정적 메모리해야하는 경우 스레드 로컬 저장소를 사용할 수 있습니다
#include <thread>
#include <iostream>
static thread_local char thread_name[40]; // on older compilers use __thread
void thread1() {
strcpy(thread_name, "T1");
for (int i = 0; i < 10; ++i)
std::cerr << thread_name << ": I'm thread1!\n";
}
void thread2() {
strcpy(thread_name, "T2");
for (int i = 0; i < 10; ++i)
std::cerr << thread_name << ": I'm thread2!\n";
}
int main() {
std::thread t1(thread1), t2(thread2);
t1.join(); t2.join();
}
을 ...하거나 새, malloc에로 (동적으로 메모리를 할당 할 수 있습니다 .. ..) 로컬 변수의 thread 함수 내에서, 두 가지 방법으로 다른 스레드가 액세스 할 수 없습니다.
일반적으로 전용 메모리 만 사용하는 함수 또는 모듈을 작성하고 함수/모듈이 인 재진입 코드라고하는 프로그램 상태를 변경하지 않는 경우입니다.
관련 문제
- 1. C의 현재 마이크로 초 시간?
- 2. C의 스레드 안전성?
- 3. C의 스레드 간 통신
- 4. C의 스레드 정보 #
- 5. CPU 속도와 C의 스레드 ++
- 6. 세마포어와 C의 스레드
- 7. 운영 체제가없는 마이크로 컨트롤러에서 C의 한계는 무엇입니까?
- 8. C의 마이크로 소프트 특정 연장을 제거하십시오
- 9. C의 스레드 특정 데이터 예
- 10. C의 대기열에서 항목을 제거하는 스레드
- 11. SIGALRM을 사용하는 c의 타이머 스레드
- 12. C의 스레드; Tcp Chat Programm
- 13. Objective-C의 이름/레이블로 스레드 가져 오기
- 14. C의 스레드 안전 DBM 라이브러리는 무엇입니까?
- 15. Windows에서 C의 스레드 사용. 간단한 예?
- 16. C의 스레드, 내가 무엇을 놓치고 있습니까?
- 17. 시스템 C의 쓰레드 및 클럭 스레드
- 18. C의 vuint는 무엇이며 왜 내 마이크로 컨트롤러에 있습니까?
- 19. 마이크로 소프트 밴드 마이크로
- 20. .net 마이크로 프레임 워크에서 스레드 생성을위한 오버 헤드는 무엇입니까?
- 21. 낮은 대기 시간 스레드 통신을위한 Windows 슬립 마이크로 초
- 22. 스레드 "main"의 예외 java.lang.InstantiationException in scala akka 마이크로 커널
- 23. VHDL 마이크로 프로세서/마이크로 컨트롤러
- 24. 마이크로 프로세서 컨텍스트 스위치
- 25. 스레드 함수를 C의 코드 부분에서 detached와 joinable로 호출합니다.
- 26. GCC 및 OMP를 사용하는 C의 특정 스레드 순서
- 27. C++ 마이크로 커널 문제
- 28. mmv_stats_interval_start C의 사용 예제
- 29. Objective-C의 @selector에서 발행
- 30. C의 잠금 메커니즘
이 표준은 스레드 로컬 메모리를 지원합니다. –
http://en.cppreference.com/w/cpp/language/storage_duration – ildjarn
모든 스레드가 할당 한 메모리는 다른 스레드에서 액세스 할 수 있습니다. 그러나 하나의 쓰레드 만이 메모리에 대한 포인터를 가지고 있다면, 그는 그 쓰레드를 액세스하는 유일한 쓰레드가 될 것이다. 스레드 로컬 메모리는 동일한 함수/객체가 다중 스레드에 의해 액세스 될 때만 필요하며 스레드 당 값을 처리하거나 저장할 필요가 있습니다. – Rene