2011-09-23 3 views
1

몇 가지 연구를했는데 프로그램을 실행하면 시스템이 자동으로 새 스레드에서 시작한다는 것을 알게되었습니다. DLL을 사용하면 어떻게됩니까? DLL 함수가 새 스레드에서 자동으로 실행됩니까?

func1() 
{ 
    while(true) ...do something; 
} 
extern_func() 
{ 
    ...do something 
    func1(); 
    ...do something else 
} 

지금 내 프로그램에서 호출 extern_func(), 그것은 새 스레드에서 함수를 실행하는 경우 또는 내가이 작업을 수행해야합니까 :

DLL에서 일부 의사 코드는 extern_func()은 DLL에서 내 보낸 명시 적으로?

+2

이와 같은 운영 체제가 없습니다. 특히 Windows. –

+0

COM +가 관련되어있을 때 상황이 훨씬 더 흥미로워집니다.하지만 완전히 다른 이야기입니다 ;-) –

답변

4

아니요, 다른 DLL에서 메소드를 호출해도 새 스레드가 자동으로 시작되지 않습니다.

5

프로그램이 시작되면 스레드가 만들어집니다. 이것을 보통 "메인"스레드라고합니다.

다른 스레드를 명시 적으로 만들지 않거나 다른 스레드를 만드는 함수를 사용하는 경우 DLL/라이브러리에서 가져온 함수를 호출하더라도 모든 코드가 해당 주 스레드에서 실행됩니다.

관련 문제