본문 바로가기
반응형

thread3

Python - 멀티 쓰레드(thread) 이해 멀티 쓰레드는 GIL로 인해 자원 손실이 존재하지만 기본적으로 I/O 대기 시간을 이용해서 실행하는 구조라고 할 수 있다. Thread를 활용할 수 있는 방법은 threading 라이브러리를 이용할 수 있으며, 가장 기본적인 방법은 다음과 같다. from threading import Thread import time def thread_task(number): print('thread start', number) time.sleep(int(number)) print('thread end', number) start = time.time() for x in range(1, 10): thread = Thread(target = thread_task, args = [x]) thread.start() end .. 2024. 3. 25.
.NET - Thread Start with Argument or Data 요청을 처리하면서 병렬로 작업을 실행해야 하는 이슈가 있었다. 인터넷에 확인 Backgraoud Task 방식이 있지만, 이는 별도의 작업을 지속적으로 실행하는 별도의 서비스를 생성하는 방안으로, 모니터링등의 지속 실행작업에 용이하고 특정 요청시점에 실행하기에는 Thread 를 통한 작업 실행이 알맞을 것이라는 생각이 들었다. 쓰레드 실행시 가장 많이 찾아본 내용은 바로 인자, 데이터 전달이였다. 작업을 처리하기 위해서 실행하는 스레드이기 때문에 처리할 데이터나 정보를 스레드에 전달해야 하는데, 인터넷에서 찾아본 내용중 가장 바른? 방법이외에도 존재하지만, 내가 읽기에 제일 가독성이 높은 코드로 데이터 전달 방안으로 정리해 보았다. 클래스 자체에 전달 데이터 정의 스레드를 통해 진행할 작업을 위해 먼저 .. 2020. 11. 30.
안티 디버깅 – Thread ID 안티 디버깅과 프로세스 보호는 약간 차이가 있다. 안티 디버깅은 디버깅을 하지 못하도록 하여 프로그램의 실행 내용을 분석하지 못하도록 방해하는 행위로, 프로세스 보호와도 혼용하기도 하지만, 프로세스 보호는 후킹과 같은 외부 프로세스에서 해당 프로그램의 데이터를 조작하지 못하도록 방지하는 기능이라 할 수 있다. 쉽게 얘기하면 정당한 경로로 함수를 호출했는지를 확인하는, 안티 디버깅의 2차적 보안 기능인 셈이다. 안티 디버깅은 디버깅을 차단하는 기능으로 이것만으로는 후킹과 같은 인젝션 기능을 막지 못한다. 따라서 안티 디버깅과는 별개로 생각하면 된다(물론 이 역시 디버깅으로 분석하여 뚫을 수 있다. 따라서 디버깅 행위에 대한 보호가 먼저 이루어져야 한다). 이 기능은 후킹시 프로세스를 보호하고자 한다면, 어.. 2020. 11. 1.
반응형