2012-06-18 3 views
1

멀티 스레드 소켓 수신기 (데몬)를 개발 중입니다.모든 스레드에 대한 문자열 목록을 유지하십시오.

필자는 pthread 라이브러리를 사용하여 멀티 스레딩을 성공적으로 구현했습니다.

장치가 보내는 데몬에 연결

내 질문은 식별 번호입니다 :

나는 그것이 ID 알고 해당 장치에서 일부 데이터를받을 때 그래서 모든 스레드에 대한 그 식별 번호를 저장하는 방법

.

델파이에는 threadvar (모든 스레드에 할당되는 변수)라는 것이 있습니다. 목록을 저장하는 데 사용할 수있는 라이브러리가 없습니까? 나는 (예를 들어, 내 자신의 링크 된 목록을 작성)

내가 리눅스 민트에 GNUCC를 사용하는 WEEL을 재발견 기획하고 있지 않다

답변

2
우리는 당신의 코드를 가지고 있지만, 경우에 대답하는 것이 더 쉽습니다

:

  • 하는 경우 pthread를 사용하여 스레드 로컬 변수를 원한다면 스레드에서 실행되는 함수의 스택에 할당하면됩니다 (이 스레드 로컬 변수는 문자열 목록에 대한 포인터가됩니다).
  • 단일 및 이중 연결 목록이있는 Glib을 사용하여 문자열을 저장할 수 있습니다. 스레드에서 실행되는 함수의 끝에서 목록을 해제하십시오. 포인터를 통해 스레드 된 함수에 데이터를 전달할 수 있습니다 (그래도 필요하면 명확하지 않음)
+0

TLS를 제안하지 않은 경우 +1. –

1

변수를 저장하기위한 스레드 별 데이터를 찾고 있다고 생각합니다. 그런 다음 pthread_setspecific() 및 pthread_getspecific()을 살펴보십시오.

관련 문제