개발 Q&A

제목 php 에서의 동기화처리가 궁금합니다
글쓴이 세콩 작성시각 2012/02/27 13:49:04
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 23709   RSS
질문1)
- 자바에서 사용하는 synchronized(동기화) 키워드를 php(or CI)에서는 어떻게 구현하고있나요??

질문2)
- php(or CI)에서 synchronized 구현을 하지않고 DB만을 사용해서 구현이 가능하다던데.. 대략 어떤식으로 가능한거죠??



ps. 질문이 난해하여 다시 정리하여 수정하였습니닷.. 이상입니닷.. ㅎㅎ;


 다음글 ajax 가능한 롤링(슬라이드)배너 jquery 플러그... (3)
 이전글 설계 다들 어떻게 하세요~? (3)

댓글

변종원(웅파) / 2012/02/27 14:04:46 / 추천 0
질문이해가 힘드네요. 2가지 질문을 하신거 같은데 mysql도 Lock, 트랜잭션 구현할 수 있습니다. 질문을 다시 해주세요.
한대승(불의회상) / 2012/02/27 14:27:46 / 추천 0
php가 병렬처리가 가능했던가 생각해봅니다.
세콩 / 2012/02/27 14:41:44 / 추천 0
 헛... php는 쓰래드지원이 안되었던 것인가요?! 두둥!!

만약 500명의 접속자가 동시에 같은 요청을 하게되면
CI에서는 요청순서대로 처리를 한다는것인가요??


ps)  저는 CI가 컨트롤러들을 쓰래드로 동작시켜주는줄... 

** 제가 궁금했던 점입니닷.. **

- ATM기기 같은 예금인출 프로그램을 작성시
- 2명(또는 그이상)이 동시에 출금을 하는경우 어떻게 처리해줘야 할까?
- (100만원의 잔고가 있는데 둘다 100만원을 인출)

criuce / 2012/02/27 17:32:56 / 추천 0
말씀하신 것과 같은 부분은 DBMS에서 알아서 해주잖아요. 꼭 트렌젝션을 사용하지 않더라도 사용중엔 컬럼에는 락이 걸리니까 말이죠.


한글이 / 2012/02/27 18:13:07 / 추천 0
php는 웹서버가 아닙니다. 독립적으로 돌아가는 tomcat처럼 스레드를 실행시킬 수 없습니다.

한번의 요청이 들어오면 한번의 요청에 대해서 처음부터 재실행됩니다.
아파치에서 php가 포함된 아파치를 포크하거나
스레드를 하나 실행시키는 걸로 보시면 됩니다.

동기화를 시키고 싶으시면 다른 외부자원을 이용해야 합니다.
간단하게는 파일을 써도 되고요 아니면 memcached같은 캐쉬 서버를 사용해도 되며
db서버를 사용해되 됩니다.

tomcat도 대용량 작업을 할 때 서버를 여러개 실행시킵니다.
이럴때는 tomcat도 동기화로는 안되고 외부자원을 이용해야 합니다.
세콩 / 2012/02/27 20:14:54 / 추천 0
답변 갑사합니닷 (_ _)꾸뻑~

 제가 CI와 아파치서버의 개념을 애매하게 잡고있었다는걸 새삼 깨닫게되었네요.. ㅋㅋ  

양승현 / 2012/02/29 14:31:49 / 추천 0
세콩// ㅋㅋ 그럴수 있지요. 처리개념은 apache의 httpd프로세스가 자원을 할당받아서 처리를 하지요.

질문하신 부분은 위에 다른분의 말씀처럼 DB의 처리개념이겠지요. ^^;