You can start with very simple design like below pseudo code and can add multi-threaded capabilities later.
IBankManager
|
| List<string> Calculate()
|->AccountNumberManager
|
| List<string> Calculate()
IOutputManager
|
|-> Write(List<string>)
|
|->FileOutputManager
-> Write(List<string>)
void main()
{
IBankManager accountNumberManager = new AccountNumberManager()
IOutputManager fileManager = new FileOutputManager()
List<string> list = accountNumberManager.Calculate();
fileManager.Write( list );
}</string>