DispatchQueue에 관하여 설명 : https://zeddios.tistory.com/513
DispatchQueue에 사용기(+코드) :
https://zeddios.tistory.com/516
https://zeddios.tistory.com/520?category=682195
역시 방대한양을 깔끔히 정리해주시고 자세히 정리해줘서 링크로 별도 첨부 ㅠㅠ
보다보면 Operation Queue도 있을텐데 읽어보시기를 추천드립니다.
간단하게 뭐냐고 보자면
간단히 저 같은 경우엔 이렇게 활용했습니다
DispatchQueue.global().async {
guard let imageURL: URL = URL(string: movie.image) else { return }
guard let imageData: Data = try? Data(contentsOf: imageURL) else { return }
DispatchQueue.main.async {
if let index: IndexPath = tableView.indexPath(for: cell){
if index.row == indexPath.row{
cell.movieImage.image = UIImage(data: imageData)
}
}
}
}
global에다가 필요한 작업들을 넣고
main에 화면에 표시되는 동작들을 쓰는 걸로 아는데
사실 글로벌에 넣고 돌리면 이거 메인에서 돌려야하는데? 라고 에러코드를 내뱉기도 해서 수정 하기도 합니다 ㅋㅋㅋㅋ
GCD는 그래도 프로그램이 얼추 알아서 관리해주기 때문에 가벼운 작업의 비동기처리는 이렇게 활용하기!