메뉴 건너뛰기

라이온하트 2nd edition

홈페이지를 새롭게 리뉴얼합니다.

Information
2015.12.02 10:40

[스크랩] PHP 쓰레드 흉내내기

조회 수 91120 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
http://w-shadow.com/blog/2008/05/24/improved-thread-simulation-class-for-php/ : 원본 참조링크 


바로 코드 테스트 들어감 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
include_once("thread.class.php");
 
//쓰레드 구동 함수
function test($s, $s1, $sleep_time){               
    sleep($sleep_time);
    return sprintf("%s-->%s : sleep time : %s", $s, $s1, $sleep_time);              
}  
 
$program_start_time = microtime(true);
 
//쓰레드 생성
$thread1 = new Thread("localhost");
 
//쓰레드로 돌릴 함수를 등록 그리고 매개변수를 전달 한다. - 매개변수의 개수와 맞아야함
$thread1->setFunc('test', array("testString","testString1",2));
$thread1->start();
  
$thread2 = new Thread("localhost");
$thread2->setFunc('test', array("testString","testString1",2));
$thread2->start();
  
// 종료된 쓰레드의 응답을 기다림
while ( !$thread1->finished ||
            !$thread2->finished){
             
    $thread1->query();
    $thread2->query();      
}
  
//결과
printf("Thread1: %s <br>", $thread1->result);
printf("Thread2: %s <br>", $thread1->result);
printf("Total execution time : %s  seconds<br>", (microtime(true)-$program_start_time) );
/*
    동일 하게 2초를 사용 했고 전체 사용 시간이 2초 인것을 알수 있다. ㅎ_ㅎ
    Thread1 : testString-->testString1 : sleep time : 2
    Thread2 : testString-->testString1 : sleep time : 2
    Total execution time : 2.0561389923096 seconds
 */


글자가 깨지므로 코드 첨부 :

기본적인 원리는 이렇다 스레드 객체를 생성 할때에 호스트 이름만 적어주면 
현재 파일을 찾고 지정한 함수 이름을 호출을 하는데 매개변수 까지 전달 해서 호출 결과를 받아 올수 있다. 

쓰레드 클래스 에서는 HTTP 로 동시에 전체 호출 하고 결과는 차근 차근 받아온다. 

훔... 유용할듯 ..................................... ㅋ 
역시 외쿡 사람들이 잘하는 사람들이 많음 우찌 이런 사랑스러운 코드를.............................. 


URL: http://code.p-ark.co.kr/154

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
145 Information 404 NOT FOUND file LionHeart 2014.09.30 70602
144 Information MONSTA web FTP LionHeart 2014.10.01 135067
143 OS Apache, DDoS 방어모듈 1 LionHeart 2014.10.01 170078
142 OS apache, cBand module LionHeart 2014.10.01 113623
141 Computer AjaxPlorer 4.2.0 매뉴얼 [한글관련 설정] LionHeart 2014.10.02 134782
140 OS apache VirtualHost 마스터 LionHeart 2014.10.23 107663
139 Information [동아일보] 죽음도 지울수 없는 ‘주홍글씨’… 지워야 산다 LionHeart 2014.11.14 88411
138 Information 대법원 2005. 6. 10. 선고 2004다29934 판결 LionHeart 2014.11.28 67221
137 Information 아르바이트생이 갑자기 그만둔 경우 근로계약 위반에 해당하나요? LionHeart 2014.12.30 87580
136 C# C# XML 쓰고 읽기 LionHeart 2015.02.10 226118
135 OS MySQL 5.1.73의 Windows 및 Linux의 속도비교 1 file LionHeart 2015.03.05 70382
134 C# [스크랩] C# 2.0 에서 DataGridview 로 멀티스레드 검색 LionHeart 2015.04.09 113229
133 Android Unity CameraReSize badung007 2015.04.10 75741
132 C# 표준편차 (볼린저밴드 구현을 위한) LionHeart 2015.04.29 260724
131 C# [링크] 키보드 잠그기 (후킹) LionHeart 2015.05.07 110322
130 OS sulinux APM 설치 (link) LionHeart 2015.06.03 86140
129 C# C#에서 SFTP 구현 LionHeart 2015.06.10 116477
128 C# C#, JSON 이용 LionHeart 2015.06.25 121212
127 C# 표준편차 1 LionHeart 2015.07.01 74244
126 C# C#, Candle Stick 차트 (dotnet 4.5 framework) LionHeart 2015.07.06 107757
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 12 Next ›
/ 12