안녕하세요 DB에 대해서 공부하면서 코딩하고 있는데 (MySQL 사용중)
일정 개수의 쓰레드를 미리 생성하고 Main과 작업큐, 리턴큐를 두개 공유하게 한다음
Insert, delete, update, select 문중 선택해 데이터를 입력한 뒤 작업큐에 push 하고 push했다는 이벤트를 발생시키면 쓰레드들의 Sleep이 풀리면서 작업큐에서 pop을 해 연결된 DB에게 쿼리를 쏴주고 리턴받아 큐에 다시 넣어줍니다 그리고 Main은 리턴큐를 검사해 결과를 출력하는 프로그램인데요
문제가
DB의 데이터는 정수가 될 수 있고 문자열이 될 수도 있으니 버퍼에 문자열로 파싱해 주고받게 했었는데
int 4바이트에 비해 문자열은 너무 크니 메모리손해가 발생한다고 생각하는데 어떻게하면
문자열이 아닌 자료형을 문자열과같이 구조체가 아닌 형태로 전달할 수 있을까요?
또, Main이 리턴큐를 검사하는동안 쓰레드들은 완료된 작업을 push하지 못하는데 단순히 Main이 또다른 큐를 가지는 방법 말고 다른 방법이 있을까요?