>백엔드 개발 >파이썬 튜토리얼 >Python에서 개발한 세 가지 작동 모드에 대한 자세한 소개

Python에서 개발한 세 가지 작동 모드에 대한 자세한 소개

高洛峰
高洛峰원래의
2017-02-14 14:03:191433검색

이 글에서는 Python 개발의 세 가지 작동 모드에 대한 관련 정보를 주로 자세히 소개합니다. 필요한 친구는

Python의 세 가지 작동 모드

Python은 스크립팅 언어로서 광범위한 응용 프로그램에서 사용됩니다. 일부 학생들은 이를 알고리즘 개발에 사용하고, 일부 학생들은 논리 검증에 사용하고, 일부 학생들은 전체 시스템 프로세스를 바인딩하는 접착 언어로 사용합니다. 어쨌든 Python을 사용하는 방법은 비즈니스 시나리오와 Python 애플리케이션 기능에 따라 다릅니다. 개인적으로 Python은 비즈니스 개발과 제품 프로토타입 개발 모두에 사용될 수 있다고 생각합니다. 일반적으로 Python은 주로 다음 세 가지 모드로 작동합니다.

1. 단일 루프 모드

단일 루프 모드는 가장 많이 사용되고 가장 간단하며 가장 안정적입니다. 그 이유는 단일 루프에 작성되는 코드가 적고 오류가 발생할 가능성이 적기 때문입니다. 따라서 인터페이스가 올바르게 작성되는 한 오류 가능성은 일반적으로 매우 낮습니다. 물론, 단일 루프가 쓸모없다고 말하는 것은 아니며, 그 반대입니다. 단일 루프 모드는 우리가 가장 자주 사용하는 모드입니다. 이러한 종류의 개발은 특히 일부 장치, 소규모 애플리케이션 및 소규모 장면에 적합합니다.

#!/usr/bin/python
import os
import sys
import re
import signal
import time

g_exit = 0

def sig_process(sig, frame):
  global g_exit
  g_exit = 1
  print 'catch signal'

def main():
  global g_exit
  signal.signal(signal.SIGINT, sig_process)
  while 0 == g_exit:
    time.sleep(1)

    '''
    module process code
    ''' 

if __name__ == '__main__':
  main()

2. 멀티스레딩 모드

멀티스레딩 모드는 다음과 같은 상황에서 자주 사용됩니다. 블로킹. 예를 들어 다중 스레드 클라이언트 읽기 및 쓰기, 다중 스레드 웹 액세스 등이 있습니다. 여기서 멀티스레딩의 특징 중 하나는 각 스레드가 클라이언트에 따라 생성된다는 것입니다. 간단한 예로는 서버 소켓을 사용하여 스레드를 생성하면 여러 사용자가 동시에 연결되는 여러 스레드가 있게 됩니다. 이 방법은 사용이 비교적 간단하고 빠릅니다. 단점은 모든 비즈니스가 동시에 실행될 수 있으며 글로벌 데이터 보호가 매우 번거롭다는 것입니다.

rree

3. 리액터 모드

리액터 모드는 간단히 말해서 멀티스레딩을 사용합니다. 모든 사업을 처리합니다. 스레드에 의해 비즈니스가 처리된 경우 다른 스레드는 해당 비즈니스를 다시 처리할 수 없습니다. 이런 방식으로 앞서 언급한 잠금 문제인 문제를 해결하는 것과 같습니다. 따라서 이 모델의 개발자에게 사업 작성은 실제로 간단한 문제입니다. 왜냐하면 그가 집중해야 할 것은 자신의 1/3에이커이기 때문입니다. 이전에 Yunfeng이 작성한 스카이넷도 그런 모델이었는데, C+lua를 사용해서 개발했습니다. 사실 리액터 패턴 자체를 이해한다면 개발에 어떤 언어를 사용하든 상관없습니다. 핵심은 리액터의 본질을 이해하는 것입니다.


python 开发的三种运行模式详细介绍

코드로 작성하면 이렇겠죠,

#!/usr/bin/python
import os
import sys
import re
import signal
import time
import threading

g_exit=0

def run_thread():
  global g_exit
  while 0 == g_exit:
    time.sleep(1)

    '''
    do jobs per thread
    '''

def sig_process(sig, frame):
  global g_exit
  g_exit = 1

def main():

  global g_exit

  signal.signal(signal.SIGINT, sig_process)
  g_threads = []
  for i in range(4):
    td = threading.Thread(target = run_thread)
    td.start()
    g_threads.append(td)

  while 0 == g_exit:
    time.sleep(1)

  for i in range(4):
    g_threads[i].join()


if __name__ == '__main__':
  main()

감사합니다 읽으면서 모두에게 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!

파이썬 개발의 세 가지 동작 모드에 대한 자세한 소개와 관련 글은 PHP 중국어 홈페이지를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.