스레드 가입 및 사용법 threads 단어 정리
메타 스레드Threads 새로운 SNS 가입방법 사용법 특징 언어LanguageJava 엄밀히 말하면 start 메서드는 스레드를 실행시키는 것이 아닌 실행 대기 상태로 만들어주는 메서드입니다. 따라서, start 메서드가 호출되면 해당 스레드는 대기 상태가 되고, 운영체제가 스레드를 실행시킨다. 이는 스레드에는 상태가 존재해야하는 것을 알 수 있으며, 이같이 스레드의 상태를 바꿀 수 있는 메서드가 존재합니다. 스레드 상태를 제어하기 위한 여러 가지 메서드가 존재합니다.
join 메서드는 특정 스레드가 작업하는 동안에 자신을 일시 정지 상태로 전환하는 메서드입니다. 즉, 다른 스레드의 작업이 끝날 때까지 기다린다. join 메서드는 인자로 밀리초 단위로 전달할 수 있으며, 전달한 인자만큼의 시간이 경과하거나 interrupt 메서드가 호출되거나, join 호출 시 지정했던 다른 스레드가 모든 일을 마치면 다시 실행 대기 상태로 복귀합니다.
Thread 간 동기화되지 않은 코드
메인문에서는 Runnable 인터페이스를 구현한 ATM 클래스의 객체를 가족 4명의 쓰레드의 생성자에 넣어주고 실행시킵니다. 그럼 결과는 어떠한 방식으로 나올까요? 쓰레드의 동시성 때문에 잔액이 제대로 계산되지 않는 것을 볼 수 있습니다. 원래는 한 줄씩 출력될 때마다. 만원씩 빠지는 모습을 보여야 하지만 맨 위 아들은 만원을 출금했다가 4만원이 빠진 모습을 보입니다. 실제 은행에서 출금할 때 이런 모습을 보이면 많이 당황스러울 텐데요 이를 해결하기 위해 Synchronized 키워드를 추가해줍시다.
Runnable 인터페이스 구현
1. 클래스에서 Runnable 인터페이스 구현 class RunnableEx implements RunnableOverridepublic void run forint i0iRunnable 인터페이스를 통한 상속은 Thread 상속과 십중팔구 비슷합니다. Thread 상속과 같이 run 메소드를 반드시 오버라이딩 해주어야 합니다. 생성자를 통한 이름 지정은 불가능하기 때문에 객체화 과정에서 따로 지정해주어야 합니다.
2.객체화 Runnable 인터페이스를 상속받은 클래스는 객체를 생성 후 Thread 객체를 따로 생성해주어서 파라미터로 넣어주어야 start 메소드를 사용해서 쓰레드를 실행 가능합니다.
스레드 사용법
스레드 사용법은 다른 SNS들과 크게 다를바 없습니다. 하단에 있는 메뉴 탭은 인스타그램과 흡사다고 보시면 되지만 텍스트 위주입니다. 보니 사진으로 대신하는 인스타와 달리 정신지저분이 없어 보일 수 있습니다. 돋보기를 누르시면 현재 스레드를 사용하고 있는 유저들이 쭈욱 뜨는데 연예인파란 딱지들도 많이 가입되어 있는 걸 볼 수 있고, 하트 모양은 활동내역을 볼 수 있으며 게시물을 올릴 땐 가운데에 있는 글쓰기 버튼을 누르시면 됩니다.
인스타그램은 다른 사람의 글을 퍼갈 때는 리그램 혹은 리포스트앱을 별도로 설치해야 했었지만 스레드는 퍼가고 싶은 게시글 밑에 있는 동기화 아이콘처럼 생긴 아이콘을 누르시면 바로 퍼갈 수 있게 리포스트와 인용하기가 뜹니다.
Threads, 트위터Twitter 상위호환
마크 저커버그가 트위터를 똑같이 베끼기만 해서 Threads를 만들었다면 출시하지 않았을 것입니다. 마크 저커버그는 개발자이기도 하지만 이미 페이스북과 인스타그램을 보유한 세계적인 사업가이기도 합니다. 트위터가 일론 머스크에 인수되고 삐걱대는 사이 Threads 개발을 시작했다고 유명한 것만 보더라도 저커버그의 사업가적 마인드를 알 수 있습니다. Threads가 일반적인 트위터에 더해진 특별한 기능은 외부 웹사이트로 연결되는 링크 및 최대 5분 정도 길이 동영상과 사진도 올릴 수 있습니다.
트위터를 뛰어넘어 소셜연결망 플랫폼으로 더 많이 사용될 것이라는 이유는 인스타그램과 연동이 된다는 점입니다. 인스타그램과 연동이 주는 강점은 이미 전 세계 적으로 월간 이용자수 20억 명에 이르는 인스타그램의 사용자들을 별도 가입 절차 없이 간단하게 로그인이 가능하게 만들었습니다.
사용법 2
이 때 Runnable 객체를 넘겨주는데, 이 객체 안에 run 함수를 override해 thread에서 작동할 코드를 넣어주면 됩니다. Handler 또한 미리 정의한 클래스가 아닌 Handler 객체를 만들어주면 됩니다. 그 다음 Handler의 post 함수를 호출하는데 이 때 Thread와 비슷하게 Runnable 객체를 넘겨주면 됩니다. 이번에는 run 함수에 handler가 수행할 코드인 UI에 들어가는 부분을 담아주자. 실행 후 버튼을 눌러보시면 정상적으로 1초마다.
값이 1씩 많아지는 것을 볼 있습니다.
자주 묻는 질문
Thread 간 동기화되지 않은
메인문에서는 Runnable 인터페이스를 구현한 ATM 클래스의 객체를 가족 4명의 쓰레드의 생성자에 넣어주고 실행시킵니다. 구체적인 내용은 본문을 참고하시기 바랍니다.
Runnable 인터페이스
1 좀 더 구체적인 사항은 본문을 참고해 주세요.
스레드 사용법
스레드 사용법은 다른 SNS들과 크게 다를바 없습니다. 궁금한 사항은 본문을 참고하시기 바랍니다.