# Writing Multi-threaded application

**URL:** <https://discuss.aerospike.com/t/writing-multi-threaded-application/176>\
**Category:** C Client Library\
**Created:** [August 16, 2014, 12:14am UTC](https://discuss.aerospike.com/t/writing-multi-threaded-application/176 "2014-08-16T00:14:39Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![oldforum](https://avatars.discourse-cdn.com/v4/letter/o/13edae/32.png) [@oldforum](https://discuss.aerospike.com/u/oldforum)\
**Post date:** [August 16, 2014, 12:14am UTC](https://discuss.aerospike.com/t/writing-multi-threaded-application/176/1 "2014-08-16T00:14:39Z")

</div>

Hi All,

I am integrating aerospike with our multithreaded application(using C++). Every time opening & closing connection to aerospike clusters are expensive.

So can i create a connection once in a application and call read/write operations from multiple threads?Is it thread safe? or do i need to create connection pool?

Regards, Rayappan A

---

<div class="post-metadata">

**Author:** ![BhuvanRamK](https://avatars.discourse-cdn.com/v4/letter/b/8491ac/32.png) [@BhuvanRamK](https://discuss.aerospike.com/u/BhuvanRamK)\
**Post date:** [August 16, 2014, 12:15am UTC](https://discuss.aerospike.com/t/writing-multi-threaded-application/176/2 "2014-08-16T00:15:07Z")

</div>

Hello,

Aerospike’s clients are built to use multithreading.

In the C client, you’ll want to create a single connection object (AerospikeClient object). This object contains all the information about the server’s data layout (the current consistent hash layout), and contains connection pools.

Therefore, you should create one AerospikeClient object and share it among the threads accessing the cluster.
