스레드 사용법 (Threads an Instagram app)

스레드 사용법 (Threads an Instagram app)

파이썬Python문법 Python 멀티스레드란? 사용법, 예제 Multi thread, target, args, start, join 앞서 멀티 프로세스Multi process의 의미와 사용 방법에 대하여 이야기 해보았습니다. 이번 시간에는 멀티 쓰레드Multithreading에 대하여 알아 보겠습니다. 멀티프로세스는 각 각의 프로세스가 독립된 메모리를 가지고 동작한다고 하였습니다. 따라서 컴퓨터 내의 자원을 많이 소모하게 됩니다. 하지만 드레드Thread의 경우 Thread라는 의미가 가지는 실과 같이 하나의 프로세스 내에서 여러개의 실들이 각 각 움직이게 됩니다.

그리고 그 실Thread은 내부의 메모리를 공유하면서 각 각 움직이므로 프로그램이 가벼워 집니다.


Runnable 인터페이스 구현
Runnable 인터페이스 구현

Runnable 인터페이스 구현

1. 클래스에서 Runnable 인터페이스 구현 class RunnableEx implements RunnableOverridepublic void run forint i0iRunnable 인터페이스를 통한 상속은 Thread 상속과 대부분 비슷합니다. Thread 상속과 같이 run 메소드를 반드시 오버라이딩 해주어야 합니다. 생성자를 통한 이름 지정은 불가능하기 때문에 객체화 과정에서 따로 지정해주어야 합니다.

2.객체화 Runnable 인터페이스를 상속받은 클래스는 객체를 생성 후 Thread 객체를 따로 생성해주어서 파라미터로 넣어주어야 start 메소드를 이용해서 쓰레드를 실행 가능합니다.

스레드Threads의 비전
스레드Threads의 비전

스레드Threads의 비전

스레드Threads의 전망은 저커버그의 두 차례 스레드에서 볼 수 있듯이 대화를 위한 개방적이고 가까운 공공 공간을 만드는 것 임을 강조하였습니다 한 마디로 스레드와는 어떤 메신저든 호환이 가능하도록 하겠다는 것인데요. 이로써 예를 들면 조선에서 자주 활용하는 메신저인 카카오톡이든 일본에서 자주 사용되는 라인이든 모두 스레드를 통해 대화를 할 수 있는 개방성을 언급하는 것 같습니다

그리고 저커버그 자신과 자신의 아이 사진같이 개인적인 사진을 올리면서 친근함을 강조하는 것으로 보입니다 3) 폭발적인 가입자수의 스레드(Threads)발매한 지 하루 만에 약 3,500만 명의 가입자가 증가하였고 그 이후 현재는 가입자수가 1억 명이 돌파하였다고 하는데요 아직 유럽EU에서는 오픈이 되지 않았음에도 불구하고 이 정도 속도라면 트위터를 금방 따라잡을 것 같습니다.

스레드 디스플레이 및 기본 사용 방법
스레드 디스플레이 및 기본 사용 방법

스레드 디스플레이 및 기본 사용 방법

모든 가입이 끝나면 스레드 메인화면이 위와 같이 나오는데요. 트위터와 경쟁하는 서비스인 만큼 화면과 메뉴는 트위터와 인스타그램이 합쳐진 스타일과 비슷하네요. 제일 하단에는 메뉴들이 나열되어 있는데요. 각각의 기능은 다음과 같습니다. 홈 디스플레이 메뉴 본인이 팔로우하거나 추천되어 나오는 피드들이 노출되는 곳입니다. 검색 메뉴 팔로우 아니면 콘텐츠를 검색하는 메뉴입니다. 콘텐츠 등록 메뉴 내 콘텐츠를 텍스트와 사진으로 구성하여 등록할 수 있습니다.

하트 메뉴 나의 모든 활동과 알림이 표시됩니다. 프로필 메뉴 : 나의 프로필 보기/설정할 수 있습니다.

Thread 간 동기화되지 않은 코드

메인문에서는 Runnable 인터페이스를 구현한 ATM 클래스의 객체를 가족 4명의 쓰레드의 생성자에 넣어주고 실행시킵니다. 그럼 결과는 어떠한 방식으로 나올까요? 쓰레드의 동시성 때문에 잔액이 제대로 계산되지 않는 것을 볼 수 있습니다. 원래는 한 줄씩 출력될 때마다. 만원씩 빠지는 모습을 보여야 하지만 맨 위 아들은 만원을 출금했다가 4만원이 빠진 모습을 보입니다. 현실 은행에서 출금할 때 이런 모습을 보이면 많이 당황스러울 텐데요 이를 해결하기 위해 Synchronized 키워드를 추가해줍시다.

파이썬 멀티스레드Multi threa 선언

Thread 선언은 threading의 Thread로 합니다. 그리고 Tread의 시작은 start으로 종료는 join으로 합니다. target은 thread에서 동작시킬 함수 값을 정하고 args는 입력값을 사상 합니다. 아래 예제는 기본 thread 예제로 2개의 thread를 시행하고 각 각에 다른 time.sleep을 줘서 독립적으로 움직이는지를 확인합니다. 예제 코드 1516번 라인 thread 공포 1819번 라인 thread 시작 2122번 라인 thread 종료

1a23bc스레드가 각 각 독립적으로 출력 했음을 알 수 있습니다.

파이썬 멀티스레드Multi threa 이름, 프로세스 명 확인 currentthread.name 함수를 이용해서 현재 thread의 이름과 os.getpid 함수로 현재 process 명을 확인하겠습니다.

자주 묻는 질문

Runnable 인터페이스

1 구체적인 내용은 본문을 참고 해주시기 바랍니다.

스레드Threads의 비전

스레드Threads의 전망은 저커버그의 두 차례 스레드에서 볼 수 있듯이 대화를 위한 개방적이고 가까운 공공 공간을 만드는 것 임을 강조하였습니다 한 마디로 스레드와는 어떤 메신저든 호환이 가능하도록 하겠다는 것인데요. 궁금한 사항은 본문을 참고하시기 바랍니다.

스레드 디스플레이 및 기본 사용

모든 가입이 끝나면 스레드 메인화면이 위와 같이 나오는데요. 궁금한 사항은 본문을 참고하시기 바랍니다.