优化写入操作,避免race condition
diff --git a/dubbo/connection/connections.py b/dubbo/connection/connections.py
index 3a62199..9cabf3e 100644
--- a/dubbo/connection/connections.py
+++ b/dubbo/connection/connections.py
@@ -292,6 +292,8 @@
 
         self.last_active = time.time()
 
+        self.write_lock = threading.Lock()
+
     def fileno(self):
         """
         https://stackoverflow.com/a/39328021/4614538
@@ -305,17 +307,27 @@
         :param data:
         :return:
         """
-        self.write_buffer.extend(list(data))
+        self.write_lock.acquire()
+        try:
+            self.write_buffer.extend(list(data))
+        finally:
+            self.write_lock.release()
 
     def write(self):
         """
         向远程主机写数据
         :return:
         """
-        if len(self.write_buffer) > 0:
-            length = self.__sock.send(bytearray(self.write_buffer))
-            self.write_buffer = self.write_buffer[length:]
-            self.last_active = time.time()
+        if len(self.write_buffer) == 0:
+            return
+        self.write_lock.acquire()
+        try:
+            if len(self.write_buffer) > 0:
+                length = self.__sock.send(bytearray(self.write_buffer))
+                self.write_buffer = self.write_buffer[length:]
+                self.last_active = time.time()
+        finally:
+            self.write_lock.release()
 
     def read(self, callback):
         """