This commit is contained in:
Brandon Rozek 2020-05-06 23:06:13 -04:00
parent 777acb461f
commit ea27801577

View file

@ -0,0 +1,28 @@
---
title: "Quick Python: Seamless Variable Locks"
date: 2020-05-06T23:01:39-04:00
draft: false
tags: ["python", "concurrency"]
---
Combining Python's [Getters and Setters](https://brandonrozek.com/blog/pygetset/) with locks can give us seamless thread-safe variable access.
```python
from threading import Lock
class Person:
def __init__(self):
self._age = 0
self.age_lock = Lock()
@property
def age(self):
a = None
with self.age_lock:
a = self._age
return a
@age.setter
def age(self, a):
with self.age_lock:
self._age = a
```