website/content/blog/pyseamlessvarlock.md

29 lines
628 B
Markdown
Raw Normal View History

2020-05-06 23:06:13 -04:00
---
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
```