マルチスレッドで質問です

ログをテキストファイルに出力する部分を別スレッド化したいのですが
具体的にどうして良いのか悩んでいます

一応考えついたのは、メインのスレッドでログをバッファへ溜めていって
出力スレッドはそれをクリティカルセッションで受け取って順次書き出すのかなぁという程度なんですが
それだと出力している間はバッファに書き込めなくなっちゃいますよね?

また、ログバッファに数値型を突っ込んだ場合に文字列に変換するような部分も
できれば別スレッド化したいのですが、これに関してはさっぱりアイデアが浮かびません・・・

何か検索ワードかヒントでも良いので教えて下さい