Я новичок в python и попытаюсь понять концепцию многопоточности в python. В соответствии с моими знаниями в многопоточном программировании Unix, если основная функция завершается, потоки, созданные главной функцией, также прекращаются независимо от работы, которую они выполняют в потоке (если мы не используем какую-либо функцию pthread_join()), ,Неожиданное поведение при многопоточности в python
Но, проходя через многопоточность в python, я не вижу эту функцию. Мои потоки все еще успешно работают. Моя основная тема завершает работу. Итак, я хочу знать, нити в Python и Unix ведут себя по-другому ... или я чего-то не хватает. Пожалуйста, помогите в понимании этой функции потока в python. Вот код, который я использую в python.
#! /usr/bin/python
import logging
import random
import threading
import time
logging.basicConfig(level=logging.DEBUG,
format='(%(threadName)-10s) %(message)s',
)
class Counter(object):
def __init__(self, start=0):
self.lock = threading.Lock()
self.value = start
def increment(self):
logging.debug('Waiting for lock')
# Getting the Lock
self.lock.acquire()
try:
logging.debug('Acquired lock')
self.value = self.value + 1
finally:
# Releasing the Lock
self.lock.release()
def worker(c):
for i in range(2):
pause = 4
logging.debug('Sleeping for %0.02f', pause)
time.sleep(pause)
c.increment()
logging.debug('Done')
if __name__ == '__main__':
counter = Counter()
for i in range(2):
t = threading.Thread(target=worker, args=(counter,))
t.start()
logging.debug('Counter: %d', counter.value)
Итак ... в чем ваш вопрос? Это действительно расплывчато. Вы описали функциональность, но здесь нет реального вопроса. –