단일 POSIX 스레드에서 두 개의 서로 다른 대기 메커니즘을 결합하는 방법은 무엇입니까?

JustAMartin

POSIX 스레드를 사용하여 응용 프로그램을 개발 중입니다.

문제의 스레드가 들어오는 데이터를 받고 있습니다. 대부분의 경우 잠을 자고 무언가가 일어나기를 기다리고 있습니다.

그러나 여기에는 두 가지 문제가 있습니다.

  1. 어떤 상황에서는 스레드가 완전히 중지되어야합니다. 그리고 일반적으로 단순한 POSIX 조건 신호는 목적에 충분해야합니다.
  2. 스레드는 TCP 소켓에서 이벤트 및 데이터를 사용 select()하고 있으며 지원하지 않을 수도있는 가상 "포트"에서 이벤트를 기다리고 있습니다 select()(예 : 특정 Bluetooth / USB 연결 등). 이러한 포트에 대한 알림 메커니즘을 구현할 것입니다. 다시 말하지만 간단한 POSIX 조건 신호로 충분합니다.

이제 질문은 - 어떻게 모두 대기를 결합 select()하고 pthread_cond_wait()스레드의 단일 runloop 이러한 모든 이벤트에 깨워?

포트 수 (TCP 및 "가상"모두)는 5 미만으로 낮을 것으로 예상됩니다.

솔루션은 안정적이고 Linux 및 BSD와 유사한 플랫폼 (Android 및 iOS 포함)에서 작동해야합니다.

user3458

select()모든 것에 사용하십시오 . 사용 파이프 () 기본적으로에 매핑되지 않는 것들에 대한을 fd.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

.txt에서 두 개의 값을 두 개의 다른 파일로 분리하는 방법은 무엇입니까?

분류에서Dev

React에서 서로 다른 디스플레이로 두 개의 드롭 다운 목록을 동기화하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 노드에서 단일 셀레늄 테스트 케이스를 실행하는 방법은 무엇입니까?

분류에서Dev

JSF의 단일 페이지에있는 두 개의 다른 로케일 특정 파일에서 속성을로드하는 방법은 무엇입니까?

분류에서Dev

mysql의 단일 절차를 통해 두 개의 서로 다른 데이터베이스에있는 두 개의 서로 다른 테이블의 레코드를 업데이트하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 텍스트 파일에서 값을 병합하는 방법은 무엇입니까?

분류에서Dev

SQLite에서 두 개의 열을 다른 열로 결합하는 방법은 무엇입니까?

분류에서Dev

두 개의 데이터 프레임을 서로 다른 크기의 행으로 결합하는 방법은 무엇입니까?

분류에서Dev

PHP에서 하나의 양식에서 두 개의 다른 버튼에 대해 서로 다른 작업을 연결하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 커밋에서 동일한 파일의 소스를 얻는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 파일에서 일치하는 두 줄을 인쇄하는 방법은 무엇입니까?

분류에서Dev

서로 다른 두 명령의 결과를 단일 명령으로 병합하고 파이프하는 방법은 무엇입니까?

분류에서Dev

JSON 목록을 CSV 파일에서 두 개의 다른 열로 변환하는 방법은 무엇입니까?

분류에서Dev

Keras에서 입력 크기가 다른 두 개의 LSTM 레이어를 결합하는 방법은 무엇입니까?

분류에서Dev

서로 다른 Firebase 프로젝트에 대해 두 개의 json 파일 구성을 만드는 방법은 무엇입니까?

분류에서Dev

Informatica : 서로 다른 스키마의 두 소스를 동일한 대상 (플랫 파일)에로드하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 파일에서 두 열을 비교하는 방법은 무엇입니까?

분류에서Dev

SAPUI5의 서로 다른 환경에서 두 개의 서로 다른 주소에 대한 리소스를 사용하는 방법은 무엇입니까?

분류에서Dev

RSpec : 두 개의 서로 다른 개체에서 정렬 된 메시지를 기대하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 배열에있는 개체를 단일 개체 배열로 병합하는 방법은 무엇입니까?

분류에서Dev

동일한 활동에서 두 개의 다른 버튼을 클릭하여 두 개의 다른 활동으로 이동하는 방법은 무엇입니까?

분류에서Dev

양식보기에서 단일 레이블로 한 줄에 두 개의 필드를 표시하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 버튼 클릭을 기반으로 두 개의 다른 div 섹션에서 축소 및 축소하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 .Java 파일에서 클래스를 처리하는 방법은 무엇입니까?

분류에서Dev

단일 인터넷 연결로 스위치 라우터와 두 대의 다른 컴퓨터를 구성하는 방법은 무엇입니까?

분류에서Dev

어떻게 다른 스레드에서 하나 개의 스레드에 대기열을 추가하는 방법은 무엇입니까?

분류에서Dev

동일한 div에 서로 다른 크기가 정렬 된 두 개의 수평선을 하나씩 배치하는 방법은 무엇입니까?

분류에서Dev

0과 n 사이에 2의 배수를 표시하기 위해 JavaScript에서 두 개의 다른 함수를 결합하는 방법은 무엇입니까?

분류에서Dev

SQL, 단일 선택에서 두 개의 종속 열을 기반으로 많은 결과를 선택하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    .txt에서 두 개의 값을 두 개의 다른 파일로 분리하는 방법은 무엇입니까?

  2. 2

    React에서 서로 다른 디스플레이로 두 개의 드롭 다운 목록을 동기화하는 방법은 무엇입니까?

  3. 3

    두 개의 다른 노드에서 단일 셀레늄 테스트 케이스를 실행하는 방법은 무엇입니까?

  4. 4

    JSF의 단일 페이지에있는 두 개의 다른 로케일 특정 파일에서 속성을로드하는 방법은 무엇입니까?

  5. 5

    mysql의 단일 절차를 통해 두 개의 서로 다른 데이터베이스에있는 두 개의 서로 다른 테이블의 레코드를 업데이트하는 방법은 무엇입니까?

  6. 6

    두 개의 다른 텍스트 파일에서 값을 병합하는 방법은 무엇입니까?

  7. 7

    SQLite에서 두 개의 열을 다른 열로 결합하는 방법은 무엇입니까?

  8. 8

    두 개의 데이터 프레임을 서로 다른 크기의 행으로 결합하는 방법은 무엇입니까?

  9. 9

    PHP에서 하나의 양식에서 두 개의 다른 버튼에 대해 서로 다른 작업을 연결하는 방법은 무엇입니까?

  10. 10

    두 개의 다른 커밋에서 동일한 파일의 소스를 얻는 방법은 무엇입니까?

  11. 11

    두 개의 다른 파일에서 일치하는 두 줄을 인쇄하는 방법은 무엇입니까?

  12. 12

    서로 다른 두 명령의 결과를 단일 명령으로 병합하고 파이프하는 방법은 무엇입니까?

  13. 13

    JSON 목록을 CSV 파일에서 두 개의 다른 열로 변환하는 방법은 무엇입니까?

  14. 14

    Keras에서 입력 크기가 다른 두 개의 LSTM 레이어를 결합하는 방법은 무엇입니까?

  15. 15

    서로 다른 Firebase 프로젝트에 대해 두 개의 json 파일 구성을 만드는 방법은 무엇입니까?

  16. 16

    Informatica : 서로 다른 스키마의 두 소스를 동일한 대상 (플랫 파일)에로드하는 방법은 무엇입니까?

  17. 17

    두 개의 다른 파일에서 두 열을 비교하는 방법은 무엇입니까?

  18. 18

    SAPUI5의 서로 다른 환경에서 두 개의 서로 다른 주소에 대한 리소스를 사용하는 방법은 무엇입니까?

  19. 19

    RSpec : 두 개의 서로 다른 개체에서 정렬 된 메시지를 기대하는 방법은 무엇입니까?

  20. 20

    두 개의 다른 배열에있는 개체를 단일 개체 배열로 병합하는 방법은 무엇입니까?

  21. 21

    동일한 활동에서 두 개의 다른 버튼을 클릭하여 두 개의 다른 활동으로 이동하는 방법은 무엇입니까?

  22. 22

    양식보기에서 단일 레이블로 한 줄에 두 개의 필드를 표시하는 방법은 무엇입니까?

  23. 23

    두 개의 다른 버튼 클릭을 기반으로 두 개의 다른 div 섹션에서 축소 및 축소하는 방법은 무엇입니까?

  24. 24

    두 개의 다른 .Java 파일에서 클래스를 처리하는 방법은 무엇입니까?

  25. 25

    단일 인터넷 연결로 스위치 라우터와 두 대의 다른 컴퓨터를 구성하는 방법은 무엇입니까?

  26. 26

    어떻게 다른 스레드에서 하나 개의 스레드에 대기열을 추가하는 방법은 무엇입니까?

  27. 27

    동일한 div에 서로 다른 크기가 정렬 된 두 개의 수평선을 하나씩 배치하는 방법은 무엇입니까?

  28. 28

    0과 n 사이에 2의 배수를 표시하기 위해 JavaScript에서 두 개의 다른 함수를 결합하는 방법은 무엇입니까?

  29. 29

    SQL, 단일 선택에서 두 개의 종속 열을 기반으로 많은 결과를 선택하는 방법은 무엇입니까?

뜨겁다태그

보관