메뉴 건너뛰기

라이온하트 2nd edition

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

Information
2015.12.02 10:40

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

조회 수 90957 추천 수 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 OS 리눅스 개인서명 SSL 인증서 생성 LionHeart 2017.08.27 49294
144 Computer MEMO LionHeart 2017.08.02 103818
143 OS Linux 계정 암호 정책 설정 LionHeart 2017.07.26 131339
142 Information SSL 인증서를 무료로 발급받는 몇 가지 방법 LionHeart 2017.07.19 45196
141 OS Fedora 25 to 26 upgrade LionHeart 2017.07.18 51535
140 OS 리눅스 서버 벤치마크 LionHeart 2017.06.21 57641
139 OS 우분투 리눅스(server)에 virtualbox로 가상우분투 설치하기 LionHeart 2017.05.17 58971
138 C# ZIP, UNZIP LionHeart 2016.11.07 90469
137 OS CentOS 7, apache 서비스 등록 (systemctl) LionHeart 2016.11.04 111341
136 OS Python 설치 LionHeart 2016.07.14 86164
135 Information How-to Asus N552VX M.2 SSD upgrade installation 2 LionHeart 2016.04.16 77206
134 OS [스크랩] 네트워크 트래픽 모니터링 vnstat LionHeart 2016.03.09 121007
133 C# 서식지정자 LionHeart 2016.02.22 73950
132 OS [스크랩] RHEL/CentOS 7 에서 방화벽(firewalld) 설정하기 LionHeart 2016.01.29 159243
131 OS [스크랩] systemd에서 부팅시 실행할 서비스 관리하기 (CentOS 7) LionHeart 2016.01.29 94383
130 OS [스크랩] Apache event MPM, Prefork MPM, Worker MPM 방식의 차이점 및 설치 시 설정 방법 LionHeart 2016.01.29 106456
129 OS [스크랩] RHEL5 (Redhat Enterprise Linux) yum 사용 설정 LionHeart 2016.01.28 65654
128 OS php 소스 암호화 하기 - php_screw-1.5 1 LionHeart 2016.01.23 89065
127 OS [스크랩] Nginx(1.9.5) 설치 및 성능테스트 LionHeart 2016.01.23 249489
126 OS [스크랩] CentOS와 Apache 설치 정리 LionHeart 2016.01.23 117005
Board Pagination ‹ Prev 1 2 3 4 5 6 7 8 9 10 ... 12 Next ›
/ 12