Multithread 프로그램에 관하여 드리는 질문입니다

익명 사용자의 이미지

안녕하세요.

저는 지금 서버의 기능을 하면서 동시에 클라이언트의 기능을 해야하는
프로그램을 짜고 있습니다.
그러니까.. 한 프로그램 안에서 동시에 서버 프로그램과 클라이언트
프로그램이 돌아가고 있어야 되는 것이죠.

이 프로그램을 멀티스레드 프로그램 방식으로 짜려고 pthread.h에서
제공하는 스레드 기능에 대해 찾아보고 있는 중입니다.

그런데 이곳 kldp에 예제가 많이 부족한 것 같습니다. 아무리 찾아도
멀티스레드 프로그램에 대한 정보가 거의 없네요.

Linux thread programming인가(?)하는 것만 하나 겨우 찾았습니다.
그런데 이것은 예제도 하나밖에 없고 제가 하려고 하는 방식과는
차이가 있어서 도무지 모르겠더라구요.

혹시 멀티스레드 프로그램에 대해 자세히 나와있는 자료나 책을 알고
계신분이 있나요? 도와주십시오.

감사합니다. 안녕히 계세요. 그럼 꾸벅~

익명 사용자의 이미지

찾기에서 writer에 허름한 으로 검색하심 579번인가 답변 적었던게 있으니 참고하세요.
MT책은 오렐리에 있는게 좋더군요.
실타래라고 책표지에 누에고치가 있던데...캬캬캬..
검색하심 아마 하나 나올겁니다.
열심히 공부하셔셔 부디 가르침을 주소소...^^

익명 사용자의 이미지

스레드 관련 서적은...
유명한 POSIX Thread 가 있겠죠.
문제는 구하기 어렵다는 점입니다.

그나마 제가 본 책에서 스레드를 다루고 있는 것은
UNP(Unix Network Programming, 2권인가?),
PUP(Practical Unix Programmng)밖에 모르겠네요.

KLDP에 올려져 있는 문서는 기본으로써는 충분하다고 봅니다.
다만, 제대로 된 디자인이나 동기화 방법은 없죠. -_-;;

익명 사용자의 이미지

어떤 일 때문인 모르지만
스레드를 쓰는 법과 select(poll)와 process를
쓰는 법이 있을 수 있습니다.

일의 내용에 따라서 원하시는 것을 선택하는게 좋겠네요.
물론 이 모두를 다 사용해야 할 경우도 존재하지만,
대다수의 일들은 개별적으로 사용 됩니다.

각각의 장단점들이 존재하니 참고 하십시요.
저는 개인적으로 select와 process의 결합구조를
선호 합니다.

accept돤 디스크립트들을 프로세스들에게 전달하는 구조로
계층화 시켜서 사용합니다.
이렇게 하면 디버깅 작업이 편하고 관리가 편합니다.
또한 대량의 연결들을 가능하게 합니다.

참고만 하세요.

익명 사용자의 이미지

POSIX쓰레드 관련 책은 저도 아무리 찾으려고 해도 안보이더군여..

전 딱 한권 찾았습니다..
ADDISON-WESLEY출판사의 Programming with POSIX Threads라는 책입니다.
저자는 David R. Butenhof이구여..

원서라는게 큰 단점이져 --=
전 아직도 다 먼읽었습니다 타이틀만 읽어 보고 ㅠ.ㅠ

그럼 즐프하세요..

익명 사용자의 이미지

욜라 유명한 Programming With Threads이란 책이 있습니다.
절판이 된책입니다. 물론 원서고.. 정가는 53달러 인가 하는데
올초에 50달러 선에 헌책이 올라와서 살까 말까 고민하는사이에
언넘이 낼름 사가버리더군요.. 어쩌다 한번씩 아마존에 가서
헌책이 올라오나 보는데 요즘은 103달러로 뻥튀기.. - -;; 때려주길넘들..

박준석 wrote..
안녕하세요.

저는 지금 서버의 기능을 하면서 동시에 클라이언트의 기능을 해야하는
프로그램을 짜고 있습니다.
그러니까.. 한 프로그램 안에서 동시에 서버 프로그램과 클라이언트
프로그램이 돌아가고 있어야 되는 것이죠.

이 프로그램을 멀티스레드 프로그램 방식으로 짜려고 pthread.h에서
제공하는 스레드 기능에 대해 찾아보고 있는 중입니다.

그런데 이곳 kldp에 예제가 많이 부족한 것 같습니다. 아무리 찾아도
멀티스레드 프로그램에 대한 정보가 거의 없네요.

Linux thread programming인가(?)하는 것만 하나 겨우 찾았습니다.
그런데 이것은 예제도 하나밖에 없고 제가 하려고 하는 방식과는
차이가 있어서 도무지 모르겠더라구요.

혹시 멀티스레드 프로그램에 대해 자세히 나와있는 자료나 책을 알고
계신분이 있나요? 도와주십시오.

감사합니다. 안녕히 계세요. 그럼 꾸벅~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.