import sys
target = ['KPMG', 'Lighthouse', 'Center']
print(f'1 - reference count : {sys.getrefcount(target)}')
copy_target1 = target
print(f'2 - reference count : {sys.getrefcount(target)}')
copy_target2 = target
print(f'3 - reference count : {sys.getrefcount(target)}')
---output---
1 - reference count : 2
2 - reference count : 3
3 - reference count : 4
import time
import threading
COUNT = 300000000
def countdown(n):
while n>0:
n -= 1
----------단일 스레드-------------
start_time1 = time.time()
countdown(COUNT)
end_time1 = time.time()
print(f'1st Working : {end_time1 - start_time1:.5f}')
start_time2 = time.time()
countdown(COUNT)
end_time2 = time.time()
print(f'2nd Working : {end_time2 - start_time2:.5f}')
----------멀티 스레드-------------
threads = []
start_time = time.time()
for i in range(2):
threads.append(threading.Thread(target=countdown, args=(COUNT,)))
threads[i].start()
for j in threads:
j.join()
end_time = time.time()
print(f'Multi Working : {end_time - start_time:.5f}')
---output---
1st Working : 13.41886
2nd Working : 13.12927
Multi Working : 26.65582
import time
import threading
COUNT = 30
def countdown(n):
while n>0:
n -= 1
time.sleep(1)
while n>0:
n -= 1
time.sleep(1)
while n>0:
n -= 1
time.sleep(1)
while n>0:
n -= 1
time.sleep(1)
while n>0:
n -= 1
time.sleep(1)
----------단일 스레드-------------
start_time1 = time.time()
countdown(COUNT)
end_time1 = time.time()
print(f'1st Working : {end_time1 - start_time1:.5f}')
start_time2 = time.time()
countdown(COUNT)
end_time2 = time.time()
print(f'2nd Working : {end_time2 - start_time2:.5f}')
----------멀티 스레드-------------
threads = []
start_time = time.time()
for i in range(2):
threads.append(threading.Thread(target=countdown, args=(COUNT,)))
threads[i].start()
for j in threads:
j.join()
end_time = time.time()
print(f'Multi Working : {end_time - start_time:.5f}')
---output---
1st Working : 5.43227
2nd Working : 5.50752
Multi Working : 5.02122
def countdown(n):
print(f"중간 체크 지점 0 - 현재 스레드: {threading.current_thread().name}")
while n>0:
n -= 1
print(f"중간 체크 지점 1 - 현재 스레드: {threading.current_thread().name}")
time.sleep(1)
print(f"중간 체크 지점 2 - 현재 스레드: {threading.current_thread().name}")
while n>0:
n -= 1
print(f"중간 체크 지점 3 - 현재 스레드: {threading.current_thread().name}")
time.sleep(1)
print(f"중간 체크 지점 4 - 현재 스레드: {threading.current_thread().name}")
while n>0:
n -= 1
print(f"중간 체크 지점 5 - 현재 스레드: {threading.current_thread().name}")
time.sleep(1)
print(f"중간 체크 지점 6 - 현재 스레드: {threading.current_thread().name}")
while n>0:
n -= 1
print(f"중간 체크 지점 7 - 현재 스레드: {threading.current_thread().name}")
time.sleep(1)
print(f"중간 체크 지점 8 - 현재 스레드: {threading.current_thread().name}")
while n>0:
n -= 1
print(f"중간 체크 지점 9 - 현재 스레드: {threading.current_thread().name}")
time.sleep(1)
print(f"중간 체크 지점 10 - 현재 스레드: {threading.current_thread().name}")