1. int index=0;
  2. class foo : public jThread
  3. {
  4. public:
  5. void Run()
  6. {
  7. printf("foo ");
  8. index++;
  9. }
  10. };
  11. int main()
  12. {
  13. for(int i = 0; i< 10; i++){
  14. foo f;
  15. f.Start();
  16. //f.Join();
  17. }
  18. _getch();
  19. printf("index : %d",index);
  20. }
  21.  



이걸 컴파일 해보면 








??? foo가 3개밖에 없네요 

실행할때마다 로또로 터져서 0개에서 8개까지 랜덤하게 나옵니다 

Join을 주석해제하면 10개 모두 나오고요 왜이런거죠? 


그리고 메모리 무시하고 생성을 (new foo())->Start()로 하면 확정적으로 10개 나오네요 




http://ideone.com/0nAxZS

jThread는 직접만든 스레드 클래스입니다.

자바 스레드하고 비슷하게 만들었어요.