pthread를 사용하여 사용자 프로그램에서 여러 쓰레드를 만들고 각각의 쓰레드가 어떤 데이터를 기다릴 경우...이때 폴링 방식이 아니라 인터럽터 방식으로 구현할려구 합니다. 어떤 api를 사용하면 되는지 알려주세요...
joinc.co.kr에서 찾아 봐도 그런 함수가 없는 것 같더라구요...웬지 있을 거 같은데 ...
아래의 코드는 handler 쓰레드 여러개, receiver 쓰레드 한개를 띄우는 예제입니다.
receiver는 하나로, 데이터를 받어서 큐에 넣습니다.
handler는 여러개로 쓰레드 각각 connection을 만듭니다.
문제는 thread id가 pid[0]인 쓰레드가 데이터를 큐에서 팝하고 DB를 질의했습니다. 여기서, 락이 걸렀습니다.
그렇다고 해서, 다른 데이터가 큐에 들어오는 것은 처리되지 않나요. 쓰레드는 pid[1], pid[2] 등 여러개가 있잖아요.
저는 지금 DB에 락 걸리는 상황이 발생되지 않아 그냥. pid[0] 쓰레드가 sleep(100) 되도록하고 다음 데이터를 보내봤습니다.