thread 가 자신의 번호를 스스로 알아 낼 수가 있는지...

rkdnfl의 이미지

(질문)
thread가 실행중에 자신의 thread번호를 알아낼수가 있나요?

책을 찾아 보아도 그런 함수나 속성값등에 대해서 알 수가 없어서...

현재 웹서버를 이용한 다수 사용자의단어게임을 한번 만들어 보고 있는데
스레드가 실행시간중 자신의 번호를 이용하여 크리티컬 섹션의
번호-사용자명 구조체에서 번호를 이용하여 사용자명을 검색,
화면에 사용자 명을 출력하여 주도록 하고 싶습니다.
그런데 위의 두 줄의 해결방안이 안 떠오르네요..
알수가 있는지 ,없는지의 여부조차 모르겠으니...
도움 주신다면 감사하겠습니다.

dolsemix의 이미지

쓰레드 번호를 알수만 있으면 되는건가요?
만약 pthread 계열의 라이브러리를 사용한다면
pthread_create 함수의 첫번째 파라미터를 보시죠....

음... 질문이 뜬지 한참 되었는데.. 왜 아무도 답변을 안할까요....
여기 다니시는 분들이 이정도 답은 모를리가 없을텐데... 이게 답이 아닌가....
아니면 귀차니즘인가요? 사실은 저두 답변하기 귀차나서 그냥 지나쳤더랍니다.... ^^;
야심한 밤에 온게임넷 보다가 심심해서 들어왔는데...
도움이 되었으면 좋겠네요..

담배 고만 펴야겠다...

mithrandir의 이미지

pthread_self ()

를 쓰면 됩니다.

원하시는게 thread id를 구하는거라면 말이죠.

언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net

rkdnfl의 이미지

함수가 있었군요.
생각해 보니 위의 내용이라면 실행시간중에 이름을 받아
바로 thread지역변수로 지정할수있고 그것이 간단할것 같습니다 ^^
thread의 순서제어나 시그널을 보낼 방법이 없을까 생각해 보다보니
생각이 섞여서 불필요한 질문이었는지도.
시그널을보낼 수 있는지는 지금부터 시도해 봐야 겠네요 감사합니다

아 그리고 첫번째 답변 주신 분께도 감사드립니다
저의 질문이 설명적이지가 않았는데,
pthreadcreat함수의 첫번째 인자를 thread가 호출하는 함수로
넘겨줄 방법을 몰라 고민하고 있었다는 설명을 덧붙이고 싶습니다
김동수가 떠난 후로 온게임넷을 보지 않았는데
요즘 어찌 되어가는지 궁금하네요 ^^
좋은 하루 되세요

dolsemix의 이미지

Quote:
pthreadcreat함수의 첫번째 인자를 thread가 호출하는 함수로
넘겨줄 방법을 몰라 고민하고 있었다는 설명을 덧붙이고 싶습니다

에... 좀 허무한(허접한) 답변이더라도... 봐주실길... ^^;
쓰레드를 사용하고자 하는 목적이 메모리를 공유하면서 각각의 프로세스를 돌리고자 함이 아닌지요...
따라서.... 변수를 넘겨주고말고 고민할 필요없이 전역변수를 쓰면 되는건데...
쩝..... 이방법보단 역시 쓰레드 내부에서 pthread_self()를 사용하는 방법이 더 좋아보이네요... ^^;

담배 고만 펴야겠다...

rkdnfl의 이미지

막상 thread와 소켓을 처음 써 보면서 게임을 만들어 본다고
붙잡고 있기는 한데 많이 헷갈리네요
제가 thread에 대한 이해가 부족한 상태에서 드린 질문이라
답변 주시는 분들께 폐를 끼쳐 드린것 같군요.

지금 해보고 있는데 논리가 맞는것 같은데도
생각대로 안되는군요.
http프로토콜도 공부를 하고 나서야 다시 도전해야 할듯..

좋은 하루 되세요 ^^

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.