동시성 제어가 필요할 경우 설정
lock.lock() // lock을 시도하고, 성공할 때 까지 스레드가 block됩니다.
// Critical Section
lock.unlock() // lock을 해제하서, 다른 스레드가 들어갈 수 있도록 합니다.
파라미터 갯수를 여러개 넣을 수 있다
func calculateAverage(_ numbers: Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
return total / max(1, Double(numbers.count))
}
print(calculateAverage(1, 2, 3))
// 2